Submission #738125

# Submission time Handle Problem Language Result Execution time Memory
738125 2023-05-08T07:51:46 Z bobthebuilder Comparing Plants (IOI20_plants) C++17
0 / 100
3 ms 4948 KB
#include "plants.h"
#include<bits/stdc++.h>
using namespace std;
#define sz(x) (int)x.size()
#define REP(i,n) for(int i=0;i<n;i++)
#define REP1(i,n) for(int i=1;i<=n;i++)
#define pb push_back
#define lowb(x) (x&(-x))
#define ALL(_x) _x.begin(),_x.end()
#define pii pair<int,int>
#define f first
#define s second
#define SORT_UNIQUE(x) sort(ALL(x)),x.erase(unique(ALL(x)),x.end())
#define ll long long
#define MNTO(x,y) x=min(x,y)
#define MXTO(x,y) x=max(x,y)
const int maxn=2e5+5;
vector<int> v[maxn];
int in[maxn];
int l[maxn],r[maxn];
void dfs(int u){
	l[u]=r[u]=u;
	for(int x:v[u]){
		dfs(x);
		MNTO(l[u],l[x]),MXTO(r[u],r[x]);
	}
}
int n;
void init(int k, std::vector<int> r) {
	n=sz(r);
	REP(i,2*n){
		if(r[i%n]==1){
			v[i+1].pb(i),in[i]++;
		}
		else v[i].pb(i+1),in[i+1]++;
	}
	REP(i,2*n){
		if(!in[i]){
			dfs(i);
		}	
	}
}

int compare_plants(int x, int y) {
	if((l[x]<=y and y<=r[x]) or (r[x]>=n and r[x]-n>=y)){
		return 1;
	}
	swap(x,y);
	if((l[x]<=y and y<=r[x]) or (r[x]>=n and r[x]-n>=y)){
		return -1;
	}
	return 0;
} 
# Verdict Execution time Memory Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Incorrect 3 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Incorrect 3 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Incorrect 3 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4948 KB Output is correct
2 Incorrect 2 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Incorrect 2 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Incorrect 3 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Incorrect 3 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -