Submission #70126

#TimeUsernameProblemLanguageResultExecution timeMemory
70126octopusespopa (BOI18_popa)C++17
61 / 100
123 ms640 KiB
#include <bits/stdc++.h> #include "popa.h" #pragma GCC optimize("O3") using namespace std; #define ll int #define pb push_back #define fr first #define sc second #define MAX ((ll)(1e12+100)) #define MX ((ll)(1e6+100)) #define ARRS ((ll)(2e6+100)) #define HS ((ll)(233)) #define MOD ((ll)(1e9+7)) #define EP ((double)(1e-9)) #define LG 21 #define mul(a,b) a=((a)*(b))%MOD using namespace std; int l[1020], r[1020]; int n, now; void root() { int p = now - 1; int rt = now; now ++; while(now < n && query(p, now, p, p)) { if(query(rt, now, now, now)) { l[now] = rt; rt = now; now ++; } else root(); } r[p] = rt; } int solve(int NN, int* L, int* R) { n = NN; for(int i = 0; i < n; ++ i) l[i] = r[i] = -1; int rt = 0; now = 1; while(now < n) { if(query(rt, now, now, now)) { l[now] = rt; rt = now; now ++; continue; } root(); } for(int i = 0; i < n; ++ i) L[i] = l[i], R[i] = r[i]; return rt; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...