Submission #1291775

#TimeUsernameProblemLanguageResultExecution timeMemory
1291775julia_08Comparing Plants (IOI20_plants)C++20
0 / 100
2 ms572 KiB
#include <bits/stdc++.h>
#include "plants.h"

using namespace std;

const int MAXN = 5e3 + 10;

int r[2 * MAXN];

int cmp[MAXN][MAXN];

void init(int k, vector<int> r_){

	int n = (int) r_.size();

	for(int i=0; i<n; i++) r[i] = r_[i];

	for(int i=n; i<(2 * n); i++) r[i] = r[i - n];

	vector<int> aux;

	for(int i=0; i<n; i++){
		if(r[i] == 0){
			aux.push_back(i);
		}
	}

	while(!aux.empty()){

		assert((int) aux.size() == 1);

		int i = aux.back();
		aux.pop_back();

		i += n;

		int x = (i - (k - 1));

		for(int j=0; j<n; j++){
			if(r[j] > 0){
				cmp[i][j] = 1;
				cmp[j][i] = -1;
			}
		}

		for(int j=(i - 1); j>=x; j--){
			r[j % n] --;
			if(r[j % n] == 0) aux.push_back(j % n);
		}

	}

}

int compare_plants(int x, int y){
	return cmp[x][y];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...