Submission #1291733

#TimeUsernameProblemLanguageResultExecution timeMemory
1291733SofiatpcComparing Plants (IOI20_plants)C++20
0 / 100
4093 ms8904 KiB
#include "plants.h" #include <bits/stdc++.h> using namespace std; const int MAXN = 2*1e5+5; int d[MAXN], e[MAXN], marcd[MAXN], dd[MAXN], marce[MAXN], de[MAXN]; void init(int k, vector<int> r) { int n = r.size(); for(int i = 0; i < n; i++){ marcd[i] = -1; marce[i] = -1; if(r[i] == 0)e[ (i+1)%n ] = 1; else d[i] = 1; } for(int i = 0; i < n; i++){ if(marcd[i] == -1 && d[i]){ int cur = i; while(d[cur]){ marcd[cur] = i; dd[ (cur+1)%n ] = dd[cur]+1; cur = (cur+1)%n; } marcd[cur] = i; } if(marce[i] == -1 && e[i]){ int cur = i; while(e[cur]){ marce[cur] = i; de[ (cur-1+n)%n ] = de[cur]+1; cur = (cur-1+n)%n; } marce[cur] = i; } } return; } int compare_plants(int x, int y) { if(marce[x] != -1 && marce[x] == marce[y]){ if(de[x] > de[y])return 1; return -1; } if(marcd[x] != -1 && marcd[x] == marcd[y]){ if(dd[x] > dd[y])return 1; return -1; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...