Submission #1181728

#TimeUsernameProblemLanguageResultExecution timeMemory
1181728mehmetkaganLabels (NOI20_labels)C++20
0 / 100
26 ms9284 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define int ll

int32_t main() {
    ios::sync_with_stdio(false);
    cin.tie(0);

    int N;
    cin >> N;
    
    vector<int> D(N - 1);
    for (int i = 0; i < N - 1; ++i) {
        cin >> D[i];
    }

    vector<int> prefix(N, 0);
    for (int i = 1; i < N; ++i) {
        prefix[i] = prefix[i - 1] + D[i - 1];
    }

    int min_prefix = *min_element(prefix.begin(), prefix.end());
    int max_prefix = *max_element(prefix.begin(), prefix.end());

    int lower_bound = 1 - min_prefix;
    int upper_bound = N - max_prefix;

    if (lower_bound > upper_bound) {
        cout << -1;
        return 0;
    }

    vector<int> A(N);
    A[0] = lower_bound;
    for (int i = 1; i < N; ++i) {
        A[i] = A[0] + prefix[i];
    }

    for (int i = 0; i < N; ++i) {
        if (A[i] < 1 || A[i] > N) {
            cout << -1;
            return 0;
        }
    }
    for (int i = 0; i < N; ++i) {
        cout << A[i] << " ";
    }

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