#include "permgame.h"
#include <vector>
#include <utility>
#include <bits/stdc++.h>
#define dbg(x) cerr << #x << ' ' << x << endl;
#define ll long long
#define inf (ll) 1e17
using namespace std;
// vector<int> t={ind[i],i};
// int j = Bob(t);
// std::swap(p[t[u[j]]], p[t[v[j]]]);
vector<bool> vis;
void dfs(ll node, vector<int>& g, vector<int>& p, ll first)
{
if(vis[node]) return;
vis[node]=true;
g.push_back(node);
dfs(p[node],g,p,first);
}
int Alice(int m, int e, std::vector<int> u, std::vector<int> v, int n, std::vector<int> p) {
vector<vector<ll>> adj(m);
vis.assign(n,0);
ll curans=0;
for (int i=0;i<n;i++)
{
curans+=p[i]==i;
}
for (int i=0;i<e;i++)
{
adj[u[i]].push_back(v[i]);
adj[v[i]].push_back(u[i]);
}
for (int i=0;i<m;i++)
{
if(adj[i].size() > 2)
{
return curans;
}
}
while(m == 3) {
bool taken[n];
memset(taken,0,sizeof(taken));
bool gg = 1;
for(int i=0;i<n;i++)
if(!taken[i]) {
int c = 1;
for(int j=i;p[j]!=i;j=p[j])
c++, taken[p[j]] = 1;
if(c > 2 && (c & 1)) {
vector<int> qry = {i, p[i], p[p[i]]};
int t = Bob(qry);
swap(p[qry[u[t]]],p[qry[v[t]]]);
gg = 0;
break;
}
}
if(gg) {
int ans = 0;
for(int i=0;i<n;i++)
ans += (i == p[i]);
return ans;
}
}
ll cnt=0;
for (int i=0;i<n;i++)
{
cnt+=p[i]==i;
}
return cnt;
}
# | 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... |