#include "bits/stdc++.h"
#include "plants.h"
#define pb push_back
using namespace std;
vector<int> mnsg;
void init(int k, vector<int> r) {
int n = r.size();
for(int i = 0; i < n; i++){
r[i] = (k - 1) - r[i];
}
vector<int> mns(n, n-1);
for(int cur = 0; cur < n; cur++){
vector<int> now = r, candnow(n), act(n, 1);
set<int> cand;
bool cand_cur = 0;
for(int i = 0; i < n; i++){
if(!now[i]){
cand.insert(i);
candnow[i] = true;
}
}
// candidate olana kadar sagımda alabilecegim ilk elemanı al upd at onu deaktive et
// eger ben candidate isem solda alabilecegim ilk elemanı al upd at onu deaktive et öyle ki solum boşalana ve kendimi alana kadar
int cnt = 0;
while(true){
int opbas = 0;
if(candnow[cur] == false){
if(!cand.size()){
cout<<cur<<" ve "<<cnt<<" bakarken patladık "<<endl;
abort();
}
auto nxt = cand.lower_bound(cur);
if(nxt == cand.end()){
nxt = cand.begin();
}
opbas = *nxt;
}
else{
int lst = cur;
for(int j = cur-1; j > cur-n; j--){
if(candnow[(j + n)%n] && lst - j < k){
lst = j;
}
}
opbas = (lst + n)%n;
}
if(opbas == cur) break;
cnt++;
cand.erase(cand.find(opbas));
candnow[opbas] = 0;
act[opbas] = 0;
for(int i = opbas-1; i > opbas-k; i--){
if(!act[(i+n)%n]) continue;
if(candnow[(i+n)%n]) continue;
now[(i + n)%n]--;
if(!now[(i + n)%n]){
cand.insert((i + n)%n);
candnow[(i + n)%n] = 1;
}
}
}
mns[cur] = cnt;
}
mnsg = mns;
return;
}
int compare_plants(int x, int y) {
if(mnsg[x] > mnsg[y]) return 1;
else if(mnsg[x] < mnsg[y]) return -1;
else return 0;
}
# | 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... |