This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "plants.h"
#include<bits/stdc++.h>
#define ll long long
#define ff first
#define ss second
#define pb push_back
using namespace std;
const int N = 5e5;
vector<int>v;
int n;
int R[N], L[N];
void init(int k, std::vector<int> r) {
    n = r.size();
    int a = 0;
    for(int i = 0; i < n; i++){
        if(a < i) a = i;
        while(r[a%n] == 0) a++;
        R[i] = a;
    }
    int b = n-1;
    for(int i = n-1; i >= 0; i--){
        if(b > i) b = i;
        while(r[(b-1+n) % n] == 1) b--;
        L[i] = b;
    }
    for(int i = 0; i < n; i++){
        if(L[i] < 0) L[i] += n, R[i] += n;
    }
	return;
}
bool check(int x,int y){
    return (L[x] <= y && y <= R[x]) ||
           (L[x] <= y+n && y+n <= R[x]);
}
int compare_plants(int x, int y) {
    if(check(x,y)) return 1;
    if(check(y,x)) return -1;
    return 0;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |