Submission #419198

#TimeUsernameProblemLanguageResultExecution timeMemory
419198qwerasdfzxclComparing Plants (IOI20_plants)C++14
14 / 100
4054 ms3196 KiB
#include "plants.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; int n, a[200200]; void init(int k, vector<int> r) { n = r.size(); set<int> st; for (int i=n;i;i--){ int cnt = 0; for (int j=1;j<=k-1;j++) if (a[j]) cnt++; for (int j=0;j<n;j++){ if (!a[j] && cnt==r[j]) st.insert(j); if (a[(j+1)%n]) cnt--; if (a[(j+k)%n]) cnt++; } if (st.size()==1){ a[*(st.begin())] = i; st.erase(st.begin()); continue; } assert(!st.empty()); auto iter = st.begin(); int prv = *iter; iter++; bool flag = 0; for(;iter!=st.end();iter++){ if ((*iter)-prv>=k){ flag = 1; a[*iter] = i; st.erase(iter); break; } } if (!flag){ a[*(st.begin())] = i; st.erase(st.begin()); } } } int compare_plants(int x, int y) { if (a[x]>a[y]) return 1; return -1; }
#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...