Submission #982764

#TimeUsernameProblemLanguageResultExecution timeMemory
982764vjudge1Game (APIO22_game)C++17
100 / 100
1563 ms69700 KiB
// hola soy Dember :D // 31/03/2024 #include <bits/stdc++.h> #define ll long long #define pll pair<ll,ll> #define F first #define S second #define Z size() #define pb push_back #define bp pop_back #define fo(x,y,z) for(ll x=y; x<=z; x++) #define of(x,y,z) for(ll x=y; x>=z; x--) #define all(n) n.begin(), n.end() #define arr(x,y,z) x+y, x+y+z #define dd double using namespace std; const ll MN=300005; ll n, k, xd, l[MN], r[MN], sevennationarmy[MN]; vector<ll> x[MN], y[MN]; void dfs(ll u){ if(xd)return; if(r[u]<=l[u]){xd=1; return;} if (sevennationarmy[u]>__lg(l[u]^r[u]))sevennationarmy[u]=__lg(l[u]^r[u]); else return; for(ll v:x[u])l[v]=max(l[v], l[u]), dfs(v); for(ll v:y[u])r[v]=min(r[v], r[u]), dfs(v); } void init(int N, int K){ n=N, k=K; fo(i,0,k-1)l[i]=i, r[i]=i+1; fo(i,k,n-1)l[i]=-1, r[i]=k; fo(i,0,n-1)sevennationarmy[i]=__lg(l[i]^r[i]); return; } int add_teleporter(int u, int v){ x[u].pb(v), y[v].pb(u); l[v]=max(l[v], max(l[u], ((u<k)?u:-1)+0ll)), dfs(v); r[u]=min(r[u], min(r[v], ((v<k)?v:k) +0ll)), dfs(u); return xd; }
#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...