Submission #64386

#TimeUsernameProblemLanguageResultExecution timeMemory
64386Just_Solve_The_Problempopa (BOI18_popa)C++11
0 / 100
1097 ms684 KiB
#include "popa.h" #include <bits/stdc++.h> #define pb push_back #define pii pair < int, int > #define fr first #define sc second #define mk make_pair using namespace std; const int N = (int)1e3 + 7; int pr[N]; //int query(int a, int b, int c, int d) { // printf("%d %d %d %d\n", a, b, c, d); // int gc1, gc2; // cin >> gc1 >> gc2; // return (gc1 == gc2); //} int solve(int n, int left[], int right[]) { for (int i = 0; i < n; i++) { left[i] = right[i] = -1; pr[i] = -1; } for (int i = 0; i < n; i++) { int asd; if (i == 0) { asd = query(i, i, i, i + 1); if (asd) { pr[i + 1] = i; right[i] = i + 1; } } else if (i + 1 == n) { asd = query(i, i, i - 1, i); if (asd && right[pr[i]] != i && left[pr[i]] != i) { int temp = i - 1; while (pr[temp] != -1) { temp = pr[temp]; } left[i] = temp; pr[temp] = i; } } else { asd = query(i, i, i - 1, i); if (asd && (pr[i] != -1 || (right[pr[i]] != i && left[pr[i]] != i))) { int temp = i - 1; while (pr[temp] != -1) { temp = pr[temp]; } left[i] = temp; pr[temp] = i; } asd = query(i, i, i, i + 1); if (asd) { pr[i + 1] = i; right[i] = i + 1; } } } int temp = 0; while (pr[temp] != -1) { temp = pr[temp]; } return temp; } //main() { // int n; // cin >> n; // int a[n], b[n]; // int root = solve(n, a, b); // cout << root << endl; // for (int i = 0; i < n; i++) { // cout << a[i] << ' ' << b[i] << endl; // } //}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...