Untitled
unknown
plain_text
2 months ago
915 B
3
Indexable
#include <iostream> using namespace std; long long sumD[300001] = {0}; int main() { int N; cin >> N; // Init value to 0 !!! long long maxD = 0, minD = 0; for (int i = 1; i < N; ++i) { cin >> sumD[i]; // Precalculate sumD sumD[i] += sumD[i-1]; // Find max and min maxD = max(maxD, sumD[i]); minD = min(minD, sumD[i]); } // Criteria to be in range for unique answer if (maxD - minD == N - 1) { int A1 = 1 - minD; // Check if A1 is also valid if (A1 < 1 || A1 > N) { cout << -1; return 0; } // Reconstruct array cout << A1 << " "; for (int i = 1; i < N; ++i) { cout << A1 + sumD[i] << " "; } } else { cout << -1; } return 0; }
Editor is loading...
Leave a Comment