#include "plants.h"
#include <bits/stdc++.h>
using namespace std;
using vi = vector<int>;
int n, k; vi r, smaller, larger;
void init(int K, vi R) {
n = R.size(); k = K; r = R;
smaller.assign(n, -1); larger.assign(n, -1);
for (int i = 0; i < n; i++) {
if (R[i] == 1) continue;
int di = 0;
for (int j = i; smaller[j] == -1; j = (j+n-1) % n) {
if (j != i && R[i] == 0) break;
smaller[j] = di++;
}
}
for (int i = 0; i < n; i++) {
if (R[i] == 0) continue;
int di = 0;
for (int j = i; larger[j] == -1; j = (j+n-1) % n) {
if (j != i && R[i] == 1) break;
larger[j] = di++;
}
}
}
int step(int x, int dx) {
return (x + dx) % n;
}
bool ahead(int x, int y, int z) {
if (x < y) return z >= y || z < x;
else return z >= y && z < x;
}
int compare_plants(int x, int y) {
bool swapped = false;
if (x > y) swapped = true, swap(x, y);
int xys = ahead(x, y, step(x, smaller[x]));
int yxs = ahead(y, x, step(y, smaller[y]));
int xyl = ahead(x, y, step(x, larger[x]));
int yxl = ahead(y, x, step(y, larger[y]));
if (xys && yxl) return swapped ? 1 : -1;
else if (xyl && yxs) return swapped ? -1 : 1;
return 0;
}