# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1207119 | Ludissey | Permutation Game (APIO25_permgame) | C++20 | 0 ms | 0 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);
bool b=true;
while(b){
b=false;
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=p[x];
}
if(sz(q)==3){
int j=Bob(q);
swap(p[q[u[j]]],p[q[v[j]]]);
b=true;
break;
}
}
k++;
}
int sc=0;
for (int i = 0; i < n; i++) sc+=(i==p[i]);
return sc;
}