#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |