#include<bits/stdc++.h>
using namespace std;
#define int long long
int32_t main() {
int n;
cin >> n;
int arr[n-1], ans[n]={};
for(int i=0; i<n-1; ++i) cin >> arr[i];
int curr=0;
int max_loc=-1;
int min_loc=-1;
int maxi=0, mini=0;
for(int i=0; i<n-1; ++i) {
curr+=arr[i];
if(curr>=n || curr<=-n) break;
if(curr>=maxi) {
maxi=curr;
max_loc=i+1;
}
if(curr<=mini) {
mini=curr;
min_loc=i+1;
}
}
ans[max_loc]=n-1;
if(maxi+abs(mini)!=n-1 && -maxi+mini!=-(n-1)) {
cout << -1;
return 0;
}
for(int i=max_loc-1; i>=0; --i) {
ans[i]=ans[i+1]-arr[i];
}
for(int i=max_loc+1; i<n; ++i) {
ans[i]=ans[i-1]+arr[i-1];
}
if(max_loc==-1) cout << -1;
else for(auto &elem:ans) cout << elem+1 << " ";
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... |