#include "bits/stdc++.h"
#include "plants.h"
#define pb push_back
using namespace std;
vector<int> val;
void init(int k, vector<int> r) {
    int n = r.size();
    val.resize(n);
    for(int i = 0; i < n; i++){
        r[i] = (k - 1) - r[i];
    }
    vector<int> upd(n), act(n, 1), now = r;
    if(k * 2 > n){
        for(int tur = 0; tur < n; tur++){
            int mxval = 0;
            vector<int> mxcan;
            for(int i = 0; i < n; i++){
                if(!act[i]) continue;
                if(now[i] > mxval){
                    mxval = now[i];
                    mxcan.clear();
                    mxcan.pb(i);
                }
                else if(now[i] == mxval){
                    mxcan.pb(i);
                }
            }
            int ans = mxcan[0];
            if(mxcan.size() == 2){
                pair<int, int> r0 = {mxcan[0], (mxcan[0] + k - 1)%n};
                if(r0.first < r0.second){
                    if(mxcan[1] >= r0.first && mxcan[1] <= r0.second){
                        ans = mxcan[0];
                    }
                    else{
                        ans = mxcan[1];
                    }
                }
                else{
                    if(mxcan[1] >= r0.first || mxcan[1] <= r0.second){
                        ans = mxcan[0];
                    }
                    else{
                        ans = mxcan[1];
                    }
                }
            }
            //cout<<tur<<" icin : "<<mxcan.size()<<endl;
            val[ans] = n - tur;
            act[ans] = 0;
            //cout<<tur<<" icin :"<<ans<<" val = "<<val[ans]<<endl;
            for(int i = 0; i < k-1; i++){
                now[(ans - i - 1 + n)%n]++;
            }
        }
    }
    return;
}
int compare_plants(int x, int y) {
    if(val[x] > val[y]) return 1;
    else 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... |