Submission #94824

#TimeUsernameProblemLanguageResultExecution timeMemory
94824popovicirobertpopa (BOI18_popa)C++14
100 / 100
97 ms436 KiB
#include <bits/stdc++.h> #define lsb(x) (x & (-x)) #define ll long long #define ull unsigned long long #define ld long double // 217 // 44 #include <popa.h> using namespace std; const int MAXN = 1000; int l[MAXN + 1], r[MAXN + 1]; int stk[MAXN + 1]; /*int query(int a, int b, int c, int d) { cout << 0 << " " << a << " " << b << " " << c << " " << d << "\n"; int ans; cin >> ans; return ans; }*/ int solve(int n, int *l, int *r) { int i; for(i = 0; i < n; i++) { l[i] = r[i] = -1; } int sz = 0; for(i = 0; i < n; i++) { while(sz > 0 && query(i, i, stk[sz], i)) { r[stk[sz]] = l[i]; l[i] = stk[sz]; sz--; } stk[++sz] = i; } while(sz > 1) { r[stk[sz - 1]] = stk[sz]; sz--; } return stk[1]; } /*int main() { //ifstream cin("A.in"); //ofstream cout("A.out"); int i, t; ios::sync_with_stdio(false); //cin.tie(0), cout.tie(0); /cin >> t; while(t > 0) { t--; int n; cin >> n; solve(n); cout << 1 << "\n" << stk[1] << "\n"; for(i = 0; i < n; i++) { cout << l[i] << " "; } cout << "\n"; for(i = 0; i < n; i++) { cout << r[i] << " "; } cout << "\n"; } //cin.close(); //cout.close(); return 0; }*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...