#include "plants.h"
#include <bits/stdc++.h>
using namespace std;
const int nx=2e5+5;
int N, dpl[nx], dpr[nx];
vector<int> h;
int solvel(int x)
{
if (dpl[x]!=-1) return dpl[x];
int prev=(x-1+N)%N;
if (h[prev]==1) return dpl[x]=solvel(prev);
return dpl[x]=x;
}
int solver(int x)
{
if (dpr[x]!=-1) return dpr[x];
int nxt=(x+1)%N;
if (h[x]==0) return dpr[x]=solver(nxt);
return dpr[x]=x;
}
void init(int k, std::vector<int> r) {
N=r.size();
h=r;
for (int i=0; i<N; i++) dpl[i]=dpr[i]=-1;
for (int i=0; i<N; i++)
{
if (dpl[i]==-1) solvel(i);
if (dpr[i]==-1) solver(i);
//cout<<i<<' '<<dpl[i]<<' '<<dpr[i]<<'\n';
}
}
int isgreater(int x, int y)
{
if (dpl[x]==dpr[x]&&dpl[x]!=x) return 1;
if (dpl[x]>dpr[x])
{
if (y>=dpl[x]) return 1;
if (y<=dpr[x]) return 1;
return 0;
}
return (dpl[x]<=y&&y<=dpr[x]);
}
int compare_plants(int x, int y) {
if (isgreater(x, y)) return 1;
if (isgreater(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... |