Submission #1207060

#TimeUsernameProblemLanguageResultExecution timeMemory
1207060LudisseyPermutation Game (APIO25_permgame)C++20
0 / 100
0 ms328 KiB
#include "permgame.h" #include <bits/stdc++.h> #define sz(a) (int)a.size() #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() using namespace std; int Alice(int m, int e, std::vector<int> u, std::vector<int> v, int n, std::vector<int> p) { std::vector<int> t(m); vector<int> pos(n); for (int i = 0; i < n; i++) { pos[p[i]]=i; } bool b=true; int k=1; while(b){ b=false; vector<int> p2(n,0); for (int i = 0; i < n; i++) p2[i]=i; for (int i = 0; i < n; i++) { int x=i; vector<int> q; vector<int> visited(n,0); while(visited[x]==0&&sz(q)<3){ visited[x]=k; if(sz(q)==2&&p[x]!=i) p2[pos[i]]=x; q.push_back(x); x=p[x]; } if(x==i&&sz(q)==3){ int j=Bob(q); swap(pos[p[q[u[j]]]],pos[p[q[v[j]]]]); swap(p[q[u[j]]],p[q[v[j]]]); b=true; break; } } if(!b){ for (int i = 0; i < n; i++) { int x=i; vector<int> q; vector<int> visited(n,0); while(visited[x]==0&&sz(q)<3){ visited[x]=k; q.push_back(x); x=p2[x]; } if(x==i&&sz(q)==3){ int j=Bob(q); swap(pos[p[q[u[j]]]],pos[p[q[v[j]]]]); swap(p[q[u[j]]],p[q[v[j]]]); b=true; break; } } } k++; } int sc=0; for (int i = 0; i < n; i++) sc+=(pos[p[i]]==p[i]); return sc; }
#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...