Submission #713013

# Submission time Handle Problem Language Result Execution time Memory
713013 2023-03-20T21:10:01 Z study Editor (BOI15_edi) C++17
100 / 100
113 ms 52520 KB
#include <bits/stdc++.h>
using namespace std;

const int N = 3e5+1;

int pere[20][N], sufmin[20][N],res[N];

int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	int n;
	cin >> n;
	for (int i=1; i<=n; ++i){
		int a;
		cin >> a;
		if (a > 0){
			pere[0][i] = i;
			res[i] = a;
		}
		else{
			a = -a;
			int prev = i-1;
			for (int j=19; j>=0; --j){
				if (sufmin[j][prev] >= a) prev = pere[j][prev];
			}
			//if (prev != i-1) --prev;
			// undo operation prev
//			cout << "undo " << prev-1 << endl;

			res[i] = res[prev-1];
			pere[0][i] = prev-1;
			sufmin[0][i] = a;
		}
		for (int j=1; j<20; ++j){
			pere[j][i] = pere[j-1][pere[j-1][i]];
			sufmin[j][i] = min(sufmin[j-1][i],sufmin[j-1][pere[j-1][i]]);
		}
		cout << res[i] << '\n';
	}
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 468 KB Output is correct
2 Correct 2 ms 1364 KB Output is correct
3 Correct 1 ms 468 KB Output is correct
4 Correct 1 ms 584 KB Output is correct
5 Correct 3 ms 1364 KB Output is correct
6 Correct 1 ms 468 KB Output is correct
7 Correct 2 ms 1332 KB Output is correct
8 Correct 1 ms 468 KB Output is correct
9 Correct 2 ms 1364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 86 ms 51808 KB Output is correct
2 Correct 87 ms 51832 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 49 ms 26096 KB Output is correct
2 Correct 54 ms 31184 KB Output is correct
3 Correct 94 ms 41092 KB Output is correct
4 Correct 84 ms 51788 KB Output is correct
5 Correct 91 ms 52488 KB Output is correct
6 Correct 80 ms 49748 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 468 KB Output is correct
2 Correct 2 ms 1364 KB Output is correct
3 Correct 1 ms 468 KB Output is correct
4 Correct 1 ms 584 KB Output is correct
5 Correct 3 ms 1364 KB Output is correct
6 Correct 1 ms 468 KB Output is correct
7 Correct 2 ms 1332 KB Output is correct
8 Correct 1 ms 468 KB Output is correct
9 Correct 2 ms 1364 KB Output is correct
10 Correct 86 ms 51808 KB Output is correct
11 Correct 87 ms 51832 KB Output is correct
12 Correct 49 ms 26096 KB Output is correct
13 Correct 54 ms 31184 KB Output is correct
14 Correct 94 ms 41092 KB Output is correct
15 Correct 84 ms 51788 KB Output is correct
16 Correct 91 ms 52488 KB Output is correct
17 Correct 80 ms 49748 KB Output is correct
18 Correct 93 ms 51860 KB Output is correct
19 Correct 95 ms 51776 KB Output is correct
20 Correct 113 ms 51036 KB Output is correct
21 Correct 88 ms 51748 KB Output is correct
22 Correct 93 ms 52520 KB Output is correct