Submission #1299122

#TimeUsernameProblemLanguageResultExecution timeMemory
1299122PieArmyThe Potion of Great Power (CEOI20_potion)C++20
0 / 100
198 ms62280 KiB
#include<bits/stdc++.h>
typedef long long ll;
#define pb push_back
#define fr first
#define sc second
#define endl '\n'
using namespace std;
#define mid ((left+right)>>1)

int n;
int h[100023];
map<int,array<int,2>>mp[100023];
set<int>st[100023];

void init(int N, int D, int H[]){
	n=N;
	for(int i=0;i<n;i++){
		h[i]=H[i];
		mp[i][0]={0,0};
	}
}

void curseChanges(int U, int A[], int B[]){
	for(int i=1;i<=U;i++){
		int a=A[i-1],b=B[i-1];
		if(st[b].count(a)){
			st[b].erase(a);
			st[a].erase(b);
			mp[a][i][h[b]]--;
			mp[b][i][h[a]]--;
		}
		else{
			st[b].insert(a);
			st[a].insert(b);
			mp[a][i][h[b]]++;
			mp[b][i][h[a]]++;
		}
	}
}

int question(int x, int y, int v){
	int res=1e9;
	array<int,2>&a=(--mp[x].upper_bound(v))->sc;
	array<int,2>&b=(--mp[y].upper_bound(v))->sc;
	if((a[0]&&b[1])||(a[1]&&b[0])){
		res=1;
	}
	if((a[0]&&b[0])||(a[1]&&b[1])){
		res=0;
	}
	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...