Submission #1299131

#TimeUsernameProblemLanguageResultExecution timeMemory
1299131PieArmyThe Potion of Great Power (CEOI20_potion)C++20
18 / 100
269 ms62108 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]; mp[a][i]=(--mp[a].end())->sc; mp[b][i]=(--mp[b].end())->sc; 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...