#include "permgame.h"
#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for(int i = a; i <= b; ++i)
#define pb push_back
#define fi first
#define se second
#define pii pair<int,int>
int Alice(int m, int e, std::vector<int> u, std::vector<int> v, int n, std::vector<int> p) {
int cnt = 0;
rep(i,0,n-1) if (p[i]==i) cnt++;
vector<vector<int>> g(m);
rep(i,0,e-1) g[u[i]].pb(v[i]), g[v[i]].pb(u[i]);
int rt;
vector<int> ord;
rep(i,0,m-1) {
if(g[i].size()==1)rt=i;
if(g[i].size() > 2) return cnt;
}
ord.pb(rt);
int par = -1;
rep(i,1,m-1) {
for(int&v : g[rt]) {
if(v==par)continue;
par=rt;
ord.pb(v);
rt = v;
}
}
while(1){
vector<bool> mk(n,0);
vector<int> t(m);
int j = 0;
rep(i,0,n-1) {
if(mk[i] || p[i] == i || j >= m) continue;
int st = p[i];
while (j<m && !mk[st]){
t[ord[j]] = st;
j++;
mk[st] = 1;
st = p[st];
}
}
if(j < m) break;
int k = Bob(t);
swap(p[t[u[k]]], p[t[v[k]]]);
}
cnt = 0;
rep(i,0,n-1) if (p[i]==i) cnt++;
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... |