# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
260251 | 2020-08-09T22:00:21 Z | caoash | popa (BOI18_popa) | C++14 | 0 ms | 0 KB |
#include <bits/stdc++.h> using namespace std; using ll = long long; using vi = vector<int>; #define pb push_back #define rsz resize #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() using pi = pair<int,int>; #define f first #define s second #define mp make_pair int solve(int N, int *L, int *R) { vector<int> st; st.pb(0); for (int i = 1; i < N; i++) { L[i] = -1, R[i] = -1; while (!st.empty() && query(st.back(), i, i, i)) { L[i] = st.back(); st.pop_back(); } if (!st.empty()) { R[st.back()] = i; } st.pb(i); } return st.front(); }