# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1239628 | Ghulam_Junaid | Comparing Plants (IOI20_plants) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#include "plants.h"
// #include "grader.cpp"
using namespace std;
const int N = 4e5 + 100;
int nn, K, par[N];
vector<int> R;
void init(int kk, vector<int> rr) {
nn = r.size(), K = kk, R = rr;
par[2 * nn - 1] = 2 * nn;
for (int i = 2 * nn - 2; i >= 0; i --){
if ((r[i % nn] == r[(i + 1) % nn]))
par[i] = par[i + 1];
else
par[i] = i + 1;
}
}
int compare_plants(int x, int y) {
if (y <= par[x]){
if (r[x]) return -1;
return 1;
}
if (x + n <= par[y]){
if (r[y]) return 1;
return -1;
}
return 0;
}