Submission #1285238

#TimeUsernameProblemLanguageResultExecution timeMemory
1285238goulthenPermutation Game (APIO25_permgame)C++20
12 / 100
2 ms404 KiB
#include "permgame.h" #include <bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i = a; i <= b; ++i) #define pb push_back #define fi first #define se second #define pii pair<int,int> int Alice(int m, int e, std::vector<int> u, std::vector<int> v, int n, std::vector<int> p) { int cnt = 0; rep(i,0,n-1) if (p[i]==i) cnt++; vector<vector<int>> g(m); rep(i,0,e-1) g[u[i]].pb(v[i]), g[v[i]].pb(u[i]); int rt; vector<int> ord; rep(i,0,m-1) { if(g[i].size()==1)rt=i; if(g[i].size() > 2) return cnt; } ord.pb(rt); int par = -1; rep(i,1,m-1) { for(int&v : g[rt]) { if(v==par)continue; par=rt; ord.pb(v); rt = v; } } while(1){ vector<bool> mk(n,0); vector<int> t(m); int j = 0; rep(i,0,n-1) { if(mk[i] || p[i] == i || j >= m) continue; int st = p[i]; while (j<m && !mk[st]){ t[ord[j]] = st; j++; mk[st] = 1; st = p[st]; } } if(j < m) break; int k = Bob(t); swap(p[t[u[k]]], p[t[v[k]]]); } cnt = 0; rep(i,0,n-1) if (p[i]==i) cnt++; return cnt; }
#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...