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...