This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "plants.h"
#include <bits/stdc++.h>
using namespace std;
const int M = 5005	;
int n;
int chosen;
vector<int> h(M,0);
void init(int k, vector<int> r) {
	n = r.size();
	vector<bool> vis(M,0);
	auto ind = [&](int x){
		return (x+n)%n;
	};
	auto other = [&](int x){
		for(int i=1;i<k;i++){
			//cerr<<i<<" "<<ind(x-i) <<  '\n';
			if(r[ind(x-i)] == 0){
				return false;
			}
		}
		return true;
	};
	
	auto clean = [&](int x){
		for(int i=0;i<k;i++){
			//cerr<<i<<" "<<ind(x-i) << ' ';
			r[ind(x-i)]--;
		}//cerr<<endl;
	};
	int nxt = n;
	int cnt = n;
	while(cnt--){
		for(int i=0;i<n;i++){
			if(vis[i])continue;
			if(r[i] == 0){
				//cerr<<i<<endl;
				if(other(i)){
					//cerr<<i<<endl;
					vis[i] = 1;
					h[i] = nxt--;
					clean(i);
					break;
				}
			}
		}
	}/*
	for(auto i:order)cerr << i<<" ";
		cerr<<'\n';
		*/
	return;
}
int compare_plants(int x, int y) {
	if(h[x] > h[y])return 1;
	if(h[y] > h[x])return -1;
	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... |