Submission #1298042

#TimeUsernameProblemLanguageResultExecution timeMemory
1298042m_a_dLabels (NOI20_labels)C++20
100 / 100
88 ms7040 KiB
#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=0;
    int min_loc=0;
    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;
    //cout << maxi << " " << mini;
    if(maxi+abs(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];
    }
    for(auto &elem:ans) cout << elem+1 << " ";
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...