Submission #1167310

#TimeUsernameProblemLanguageResultExecution timeMemory
1167310gygComparing Plants (IOI20_plants)C++20
0 / 100
0 ms360 KiB
#include "plants.h"
#include <bits/stdc++.h>
using namespace std;
#define arr array 
#define vec vector
const int N = 2e5 + 5;

int n, k;
arr<int, N> a;

int md(int i) { return (i % n == 0) ? n : i % n; }
arr<int, N> vl, sm;
int qry(int l, int r) {
	if (l > r) return 0;
	return sm[r] - sm[l - 1];
}
void sm_cmp() {
	for (int i = 1; i <= n; i++) {
		vl[i] = a[md(i - 1)];
		sm[i] = sm[i - 1] + vl[i];
	}
}

void init(int _k, vec<int> _a) {
	n = _a.size(), k = _k;
	for (int i = 1; i <= n; i++) a[i] = _a[i - 1];

	sm_cmp();
}

// 0 indexed
int compare_plants(int i, int j) {
	i++, j++;

	int x = qry(i + 1, j), y = qry(j + 1, n) + qry(1, x);
	if (x == 0 || y == n - j + i) return 1;
	if (x == j - i || y == 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...