#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;
rep(i,0,m-1) {
if(g[i].size()==1)rt=i;
if(g[i].size() > 2) return cnt;
}
while(1){
pii cur = {-1,-1};
vector<bool> mk(n+1,0);
rep(i,0,n-1) {
if(mk[i]) continue;
mk[i] = 1;
int st = p[i],sz = 1;
while (!mk[st]){
sz++;
st = p[st];
}
cur = max(cur,{sz,i});
}
if(cur.fi < m) break;
cnt++;
vector<int> t(m);
t[rt] = (cur.se);
int par = -1, tmp = rt;
rep(i,1,m-1) {
for(int&v : g[tmp]) {
if(v==par)continue;
par=tmp;
tmp=v;
cur.se = p[cur.se];
t[tmp] = cur.se;
tmp = v;
}
}
int j = Bob(t);
swap(p[t[u[j]]], p[t[v[j]]]);
}
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... |