#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];
    }
    if(k * 2 > n){
        vector<int> upd(n), act(n, 1), now = r;
        set<int> mncan;
        for(int i = 0; i < n; i++){
            if(!act[i]) continue;
            if(now[i] == 0){
                mncan.insert(i);
            }
        }
        for(int tur = 0; tur < n; tur++){
            int ans = *mncan.begin();
            auto lst = *mncan.begin();
            for(auto itr: mncan){
                if((itr - lst + n)%n >= (n+1)/2){
                    ans = itr;
                }
                lst = itr;
            }
            
            val[ans] = tur;
            act[ans] = 0;
            mncan.erase(mncan.find(ans));
            for(int i = 0; i < k-1; i++){
                if(!act[(ans - i - 1 + n)%n]) continue;
                now[(ans - i - 1 + n)%n]--;
                if(now[(ans - i - 1 + n)%n] == 0){
                    mncan.insert((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... |