제출 #564007

#제출 시각아이디문제언어결과실행 시간메모리
564007KoDEditor (BOI15_edi)C++17
35 / 100
3082 ms6360 KiB
#include <bits/stdc++.h> using std::vector; using std::array; int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr); int N; std::cin >> N; vector<int> op(N); for (auto& x : op) { std::cin >> x; } vector<char> active(N); vector<int> par(N); vector<int> prev(N); for (int i = 0; i < N; ++i) { active[i] = true; if (op[i] < 0) { int j = i - 1; while (op[j] <= op[i] or !active[j]) { j -= 1; } par[i] = j; prev[i] = j - 1; int k = i; while (op[k] < 0) { active[par[k]] ^= 1; k = par[k]; } { int x = i - 1; while (op[x] <= op[i]) { x = prev[x]; } assert(x == j); } } else { par[i] = -1; prev[i] = i; } int ans = 0; for (int j = i; j >= 0; --j) { if (active[j] and op[j] > 0) { ans = op[j]; break; } } std::cout << ans << '\n'; } 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...