#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |