# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
867512 | 2023-10-28T14:35:16 Z | 42kangaroo | popa (BOI18_popa) | C++17 | 0 ms | 0 KB |
// // Created by 42kangaroo on 28/10/2023. // #include "bits/stdc++.h" #include "popa.h" using namespace std; struct Node { int p, l, r; }; int solve(int N, int* Left, int* Right) { int nowN = 0; vector<Node> no(N, {-1,-1,-1}); for (int i = 1; i < N; ++i) { if (query(i - 1, i, i - 1, i - 1)) { no[i].p = i - 1; no[i - 1].r = i; } else { assert(query(nowN, i, i, i)); no[nowN].p = i; no[i].l = nowN; nowN = i; } } for (int i = 0; i < N; ++i) { Left[i] = no[i].l; Right[i] = no[i].r; } return nowN; } int query(int a, int b, int c, int d) { cout << a << " "<< b << " " << c << " " << d; int r; cin >> r; return r; }