Submission #1319684

#TimeUsernameProblemLanguageResultExecution timeMemory
1319684dibamboo23Comparing Plants (IOI20_plants)C++20
0 / 100
0 ms332 KiB
#include "plants.h"
#include <bits/stdc++.h>

#define ll long long
#define sz size()
#define F first 
#define S second 

using namespace std;

const int N=1e6+3;

int n;
int r[N];
int p[N];
int s[N];

void init(int k, vector<int>inr) {
	n=(int)inr.sz;
	for(int i=0;i<n;i++)r[i]=r[i+n]=inr[i];
	int cnt=0;
	for(int i=0;i<n*2;i++){
		if(r[i]==1)cnt=0;
		cnt++;
		p[i]=cnt;
	}
	cnt=0;
	for(int i=n*2-1;i>=0;i--){
		if(r[i]==0)cnt=0;
		cnt++;
		s[i]=cnt;
	}
	return;
}

// 0 -  > 
// 1 -  <

int compare_plants(int x, int y) {
	bool t=0;
	if(x>y)t=1,swap(x,y);
	int res=-1;
	if(x+s[x]>=y)res=1;
	else if(y-p[y]<=x)res=0;
	if(res!=-1&&t)res^=1;
	return res;
}
#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...