Submission #1213692

#TimeUsernameProblemLanguageResultExecution timeMemory
1213692hengliao식물 비교 (IOI20_plants)C++20
14 / 100
89 ms3468 KiB
#include "plants.h" #include<bits/stdc++.h> using namespace std; #define F first #define S second #define pb push_back #define vll vector<ll> #define pll pair<ll, ll> typedef int ll; namespace{ const ll mxN=5005; // warning ll n, k; ll val[mxN]; bool done[mxN]; } void init(int K, vector<int> a) { memset(done, 0, sizeof(done)); n=a.size(); k=K; if(2*k>n){ auto update=[&](ll lef, ll rig, ll val){ for(ll i=lef;i<=rig;i++){ a[i]+=val; } }; for(ll i=n-1;i>=0;i--){ vll tep; for(ll j=0;j<n;j++){ if(!done[j] && a[j]==0){ tep.pb(j); } } ll dumb=0; if((ll) tep.size()==1){ dumb=tep[0]; } else{ for(ll j=0;j<(ll) tep.size();j++){ ll pre=(j-1+(ll) tep.size())%((ll) tep.size()); if(((tep[j]-tep[pre]+n)%n)>=k){ dumb=tep[j]; break; } } } val[dumb]=i; done[dumb]=1; ll lef=(dumb-k+1+n)%n; ll rig=(dumb-1+n)%n; if(lef>rig){ update(lef, n-1, -1); update(0, rig, -1); } else{ update(lef, rig, -1); } } // for(ll i=0;i<n;i++){ // cout<<val[i]<<' '; // } // cout<<'\n'; } // auto check=[&](ll tar){ // if(a[tar]>0) return false; // ll cur=tar; // for(ll i=0;i<k-1;i++){ // cur--; // if(cur<0) cur+=n; // if(a[tar]==0) return false; // } // return true; // }; // for(ll rep=0;rep<n;rep++){ // ll cur=-1; // for(ll tar=0;tar<n;tar++){ // if(check(tar)){ // cur=tar; // break; // } // } // for(ll i=1;i<k;i++){ // ll cur2=(cur+i)%n; // if(done[cur2]) continue; // adj[cur].pb(cur2); // } // for(ll i=1;i<k;i++){ // ll cur2=(cur-i+n)%n; // if(done[cur2]) continue; // adj[cur].pb(cur2); // } // } } int compare_plants(int x, int y) { if(val[x]>val[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...