Submission #1018175

#TimeUsernameProblemLanguageResultExecution timeMemory
1018175ag_1204Labels (NOI20_labels)C++14
100 / 100
48 ms11608 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long int
#define pii pair<int,int>
#define vi vector<int>
#define si set<int>
#define pb push_back
 
void solve() {
    int n; cin >> n;
    vi a(n),sum(n),dp(n);
    sum[0]=0;
    for (int i = 1; i < n; i++) {
        cin >> a[i];
        sum[i] = sum[i-1]+a[i];
    }
    auto it = max_element(sum.begin(), sum.end());
    int x  = *min_element(sum.begin(), sum.end()),idx = it-sum.begin();
    if (*it-x != n-1) {
        cout << "-1" << endl;
        return;
    }
    dp[idx] = n;
    for (int i = idx+1; i < n; i++) dp[i] = dp[i-1]+a[i];
    for (int i = idx-1; i >= 0; i--) dp[i] = dp[i+1]-a[i+1];
    for (int i = 0; i < n; i++) cout << dp[i] << ' ';
    cout << endl;
    return;
}
 
int32_t main() {
	ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	int tt=1; //cin>>tt;
	while(tt--) {
	    solve();
	}
	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...