Submission #303345

#TimeUsernameProblemLanguageResultExecution timeMemory
303345UtahaComparing Plants (IOI20_plants)C++14
14 / 100
4065 ms5240 KiB
#include "plants.h" #include<bits/stdc++.h> using namespace std; const int maxn = 200005; #define REP(i,n) for(int i=0;i<(n);i++) #define eb emplace_back #define pb push_back #define SZ(a) ((int)a.size()) #define ALL(a) a.begin(),a.end() int n,k; bool vis[maxn]; int a[maxn]; void init(int _k, std::vector<int> r) { n = r.size(); k = _k; assert(k*2>n); int pt = 0; int cnt = 0; while(cnt<n){ vector<int> idx; REP(j,n) if(!vis[j]){ if(r[j]==0) idx.pb(j); } // for(int i:idx){ // cout<<i<<' '; // } // cout<<endl; idx.pb(idx[0]+n); REP(i,SZ(idx)-1){ if(idx[i+1]-idx[i]>=k){ int t = idx[i+1]%n; vis[t] = 1; cnt++; a[t] = pt; REP(j,k-1){ int pre = (t-j-1+n)%n; if(!vis[pre]) r[pre]--; } } } pt--; // for(int i:idx) cout<<i<<' '; // cout<<'\n'; } // REP(i,n) cout<<a[i]<<" \n"[i==n-1]; return; } int compare_plants(int x, int y) { if(a[x]>a[y]) return 1; else if(a[y]>a[x]) return -1; else 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...