Submission #1285235

#TimeUsernameProblemLanguageResultExecution timeMemory
1285235goulthenPermutation Game (APIO25_permgame)C++20
6 / 100
2 ms460 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; rep(i,0,m-1) { if(g[i].size()==1)rt=i; if(g[i].size() > 2) return cnt; } while(1){ pii cur = {-1,-1}; vector<bool> mk(n+1,0); rep(i,0,n-1) { if(mk[i]) continue; mk[i] = 1; int st = p[i],sz = 1; while (!mk[st]){ sz++; st = p[st]; } cur = max(cur,{sz,i}); } if(cur.fi < m) break; cnt++; vector<int> t(m); t[rt] = (cur.se); int par = -1, tmp = rt; rep(i,1,m-1) { for(int&v : g[tmp]) { if(v==par)continue; par=tmp; tmp=v; cur.se = p[cur.se]; t[tmp] = cur.se; tmp = v; } } int j = Bob(t); swap(p[t[u[j]]], p[t[v[j]]]); } 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...