Submission #438614

#TimeUsernameProblemLanguageResultExecution timeMemory
438614AmineTrabelsiComparing Plants (IOI20_plants)C++14
14 / 100
1601 ms11240 KiB
#include "plants.h" #include <bits/stdc++.h> using namespace std; const int M = 5005 ; int n; int chosen; vector<int> h(M,0); void init(int k, vector<int> r) { n = r.size(); vector<bool> vis(M,0); auto ind = [&](int x){ return (x+n)%n; }; auto other = [&](int x){ for(int i=1;i<k;i++){ //cerr<<i<<" "<<ind(x-i) << '\n'; if(r[ind(x-i)] == 0){ return false; } } return true; }; auto clean = [&](int x){ for(int i=0;i<k;i++){ //cerr<<i<<" "<<ind(x-i) << ' '; r[ind(x-i)]--; }//cerr<<endl; }; int nxt = n; int cnt = n; while(cnt--){ for(int i=0;i<n;i++){ if(vis[i])continue; if(r[i] == 0){ //cerr<<i<<endl; if(other(i)){ //cerr<<i<<endl; vis[i] = 1; h[i] = nxt--; clean(i); break; } } } }/* for(auto i:order)cerr << i<<" "; cerr<<'\n'; */ return; } int compare_plants(int x, int y) { if(h[x] > h[y])return 1; if(h[y] > h[x])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...