#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==n-1||toplar[i]==n-1){
            tru=true;
            arr[i+1]=n;
            point=i+1;
        }else if(top==-n+1||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... |