Submission #1179036

#TimeUsernameProblemLanguageResultExecution timeMemory
1179036the_coding_poohComparing Plants (IOI20_plants)C++20
5 / 100
46 ms7372 KiB
#include "plants.h"
#include <bits/stdc++.h>

using namespace std;

const int SIZE = 2e5 + 5;

long long pre[2 * SIZE];

int N;

long long circular_sum(int l, int r){
	if(l > r)
		return circular_sum(l, N + r);
	if(l == -1)
		return pre[r];
	return pre[r] - pre[l];
}

void init(int k, vector<int> r) {
	N = r.size();
	for (int i = 0; i < N; i++){
		pre[i] = r[i];
		pre[i + N] = r[i];
	}
	for (int i = 1; i < 2 * N; i++){
		pre[i] += pre[i - 1];
	}
	return;
}

int compare_plants(int x, int y) {
	if(circular_sum(y - 1, x - 1) == (x - y + N))
		return 1;
	if (circular_sum(x - 1, y - 1) == 0)
		return 1;
	if (circular_sum(x - 1, y - 1) == (y - x))
		return -1;
	if(circular_sum(y - 1, x - 1) == 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...