#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define int ll
int32_t main() {
ios::sync_with_stdio(false);
cin.tie(0);
int N;
cin >> N;
vector<int> D(N - 1);
for (int i = 0; i < N - 1; ++i) {
cin >> D[i];
}
vector<int> prefix(N, 0);
for (int i = 1; i < N; ++i) {
prefix[i] = prefix[i - 1] + D[i - 1];
}
int min_prefix = *min_element(prefix.begin(), prefix.end());
int max_prefix = *max_element(prefix.begin(), prefix.end());
int lower_bound = 1 - min_prefix;
int upper_bound = N - max_prefix;
if (lower_bound > upper_bound) {
cout << -1;
return 0;
}
vector<int> A(N);
A[0] = lower_bound;
for (int i = 1; i < N; ++i) {
A[i] = A[0] + prefix[i];
}
for (int i = 0; i < N; ++i) {
if (A[i] < 1 || A[i] > N) {
cout << -1;
return 0;
}
}
for (int i = 0; i < N; ++i) {
cout << A[i] << " ";
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |