Submission #199685

# Submission time Handle Problem Language Result Execution time Memory
199685 2020-02-02T18:37:44 Z dolphingarlic Editor (BOI15_edi) C++14
100 / 100
276 ms 52600 KB
#include <bits/stdc++.h>
#define FOR(i, x, y) for (int i = x; i < y; i++)
typedef long long ll;
using namespace std;

int anc[300001][20], mn[300001][20], ans[300001];

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n;
    cin >> n;
    FOR(i, 1, n + 1) {
        int x;
        cin >> x;
        if (x > 0) {
            ans[i] = x;
            anc[i][0] = i;
        } else {
            x = -x;
            int curr = i - 1;
            for (int j = 19; ~j; j--) if (mn[curr][j] >= x) curr = anc[curr][j];
            anc[i][0] = curr - 1;
            ans[i] = ans[curr - 1];
            mn[i][0] = x;
            FOR(j, 1, 20) {
                anc[i][j] = anc[anc[i][j - 1]][j - 1];
                mn[i][j] = min(mn[i][j - 1], mn[anc[i][j - 1]][j - 1]);
            }
        }
    }
    FOR(i, 1, n + 1) cout << ans[i] << '\n';
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 6 ms 504 KB Output is correct
2 Correct 6 ms 1016 KB Output is correct
3 Correct 5 ms 376 KB Output is correct
4 Correct 5 ms 376 KB Output is correct
5 Correct 7 ms 1148 KB Output is correct
6 Correct 5 ms 376 KB Output is correct
7 Correct 7 ms 1144 KB Output is correct
8 Correct 5 ms 376 KB Output is correct
9 Correct 7 ms 1272 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 109 ms 51832 KB Output is correct
2 Correct 110 ms 51832 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 57 ms 20472 KB Output is correct
2 Correct 69 ms 24440 KB Output is correct
3 Correct 217 ms 40928 KB Output is correct
4 Correct 120 ms 51872 KB Output is correct
5 Correct 123 ms 52600 KB Output is correct
6 Correct 143 ms 49784 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 504 KB Output is correct
2 Correct 6 ms 1016 KB Output is correct
3 Correct 5 ms 376 KB Output is correct
4 Correct 5 ms 376 KB Output is correct
5 Correct 7 ms 1148 KB Output is correct
6 Correct 5 ms 376 KB Output is correct
7 Correct 7 ms 1144 KB Output is correct
8 Correct 5 ms 376 KB Output is correct
9 Correct 7 ms 1272 KB Output is correct
10 Correct 109 ms 51832 KB Output is correct
11 Correct 110 ms 51832 KB Output is correct
12 Correct 57 ms 20472 KB Output is correct
13 Correct 69 ms 24440 KB Output is correct
14 Correct 217 ms 40928 KB Output is correct
15 Correct 120 ms 51872 KB Output is correct
16 Correct 123 ms 52600 KB Output is correct
17 Correct 143 ms 49784 KB Output is correct
18 Correct 116 ms 40824 KB Output is correct
19 Correct 119 ms 40696 KB Output is correct
20 Correct 276 ms 51192 KB Output is correct
21 Correct 110 ms 51832 KB Output is correct
22 Correct 126 ms 52600 KB Output is correct