#include "permgame.h"
#include <bits/stdc++.h>
using namespace std;
vector<vector<int> > perm;
vector<int> adj[405];
int ans;
void computePerm(vector<int> P)
{
int visited[405]={};
ans=0;
perm.clear();
for (int i=0; i<P.size(); i++)
{
if (visited[i])
continue;
vector<int> tmp;
int cur=i;
while (!visited[cur])
{
tmp.push_back(cur);
visited[cur]=1;
cur=P[cur];
}
if (tmp.size()==1)
ans++;
else
perm.push_back(tmp);
}
}
int Alice(int M, int E, vector<int> U, vector<int> V, int N, vector<int> P)
{
computePerm(P);
while (1)
{
int updated=0;
for (int i=0; i<perm.size(); i++)
{
if (perm[i].size()&1)
{
updated=1;
vector<int> tmp;
tmp.push_back(perm[i][0]);
tmp.push_back(perm[i][1]);
tmp.push_back(perm[i][2]);
int edge=Bob(tmp);
swap(P[tmp[U[edge]]], P[tmp[V[edge]]]);
computePerm(P);
break;
}
}
if (!updated)
break;
}
return ans;
}
# | 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... |