Submission #337502

# Submission time Handle Problem Language Result Execution time Memory
337502 2020-12-21T02:30:26 Z zapan4 Labels (NOI20_labels) C++17
25 / 100
223 ms 21200 KB
#include <iostream>
#include <cmath> 
#include <stdio.h>
#include <array>
#include <vector>
#include <list>
#include <algorithm>
#include <utility>
#include <string>
#include <sstream>
#include <map>
#include <queue>
#include <stack>
#include <set>
#include <unordered_set>
#include <unordered_map>
#include <iomanip>
#define pp pair<int,int>
#define pll pair<ll, ll>
#define ll long long
using namespace std;

map<int, int> checking;
ll prefix[300001];
ll answers[300001];

int main() {
	//freopen(".in", "r", stdin);
	//freopen(".out", "w", stdout);
	ll n;
	cin >> n;
	ll maxi = 0;
	for (int i = 1; i < n; i++) {
		ll a;
		cin >> a;
		prefix[i] = prefix[i-1]+a;
		maxi = max(prefix[i], maxi);
	}
	int amount = n-maxi;
	answers[0] = amount;
	checking[amount] = 1;
	if (amount <= 0) {
		cout << "-1" << endl;
		return 0;
	}
	for (int i = 1; i < n; i++) {
		if (i == n-1) {
			if (checking.find(amount+prefix[i]) == checking.end()) {
				answers[i] = amount+prefix[i];
				if (answers[i] <= 0) {
					cout << "-1" << endl;
					return 0;
				} 
				checking[amount+prefix[i]] = 1;
			} else {
				cout << "-1" << endl;
				return 0;
			}
		} else {
			if (checking.find(amount+prefix[i]) == checking.end()) {
				answers[i] = amount+prefix[i];
				if (answers[i] <= 0) {
					cout << "-1" << endl;
					return 0;
				} 
				checking[amount+prefix[i]] = 1;
			} else {
				cout << "-1" << endl;
				return 0;
			}
		}
	}
	for (int i = 0; i < n; i++) {
		if (i == n-1) {
			cout << answers[i] << endl;
		} else {
	 		cout << answers[i] << " ";
	 	}
 	}

}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Incorrect 0 ms 364 KB Output isn't correct
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Incorrect 0 ms 364 KB Output isn't correct
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 186 ms 21200 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 223 ms 21168 KB Output is correct
4 Correct 51 ms 2668 KB Output is correct
5 Correct 58 ms 2796 KB Output is correct
6 Correct 60 ms 2668 KB Output is correct
7 Correct 56 ms 2796 KB Output is correct
8 Correct 56 ms 2796 KB Output is correct
9 Correct 0 ms 364 KB Output is correct
10 Correct 0 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Incorrect 0 ms 364 KB Output isn't correct
6 Halted 0 ms 0 KB -