Submission #559869

#TimeUsernameProblemLanguageResultExecution timeMemory
559869AlperenTComparing Plants (IOI20_plants)C++17
5 / 100
76 ms8796 KiB
#include "plants.h"
#include <bits/stdc++.h>

using namespace std;

int subtask = 0, n;

vector<array<int, 2>> prefix;

void init(int k, vector<int> r){
	n = r.size();
	if(k == 2) subtask = 1;

	prefix.assign(n, array{0, 0});

	if(r[0] == 0) prefix[0][0] = 1;
	else if(r[0] == 1) prefix[0][1] = 1;

	for(int i = 1; i < n; i++){
		prefix[i] = prefix[i - 1];

		if(r[i] == 0) prefix[i][0]++;
		else if(r[i] == 1) prefix[i][1]++;
	}
}

int compare_plants(int x, int y){
	int cnt0 = prefix[y - 1][0] - (x != 0 ? prefix[x - 1][0] : 0);
	int cnt1 = prefix[y - 1][1] - (x != 0 ? prefix[x - 1][1] : 0);

	if(cnt0 == 0) return -1;
	else if(cnt1 == 0) return 1;

	cnt0 = prefix[n - 1][0] - cnt0;
	cnt1 = prefix[n - 1][1] - cnt1;

	if(cnt0 == 0) return 1;
	else if(cnt1 == 0) return -1;

	return 0;
}
#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...