#include <bits/stdc++.h>
using namespace std;
int main(){
int n;cin>>n;
vector<long long int>a(n-1);
for(int i=0;i<n-1;i++){
cin>>a[i];
}
vector<long long int>arr(n);
int top=0;
bool tru=false;
int point;
vector<int>toplar(n-1);
for(int i=0;i<n-1;i++){
if(top>0&&a[i]<0||top<0&&a[i]>0){
top=0;
}
top+=a[i];
if(i==0){
toplar[i]=top;
}else{
toplar[i]=a[i]+toplar[i-1];}
if(top>n-1||top<-n+1){
cout<<"-1";
return 0;
}
if(top||toplar[i]==n-1){
tru=true;
arr[i+1]=n;
point=i+1;
}else if(top||toplar[i]==-n+1){
tru=true;
arr[i+1]=1;
point=i+1;
}
}
if(tru){
for(int i=point+1;i<n;i++){
arr[i]=arr[i-1]+a[i-1];
}
for(int i=point-1;i>-1;i--){
arr[i]=arr[i+1]-a[i];
}
for(int i=0;i<n;i++){
cout<<arr[i]<<" ";
}
}else{
int minus=-1;
cout<<minus<<" ";
}
}
# | 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... |