| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1362056 | kalkaper | Permutation Game (APIO25_permgame) | C++20 | 1 ms | 344 KiB |
#include "permgame.h"
#include <vector>
#include <utility>
#include <bits/stdc++.h>
using namespace std;
int Alice(int m, int e, std::vector<int> u, std::vector<int> v, int n, std::vector<int> p) {
assert(m==2||e>m||(e==m&&m==3));
vector<int> t(m);
if(m==2){
for(int i=0;i<n;i++){
if(p[i]==i)continue;
for(int j=i+1;j<n;j++){
if(p[j]==i){
t[0]=i;
t[1]=j;
int idx=Bob(t);
swap(p[t[u[idx]]],p[t[v[idx]]]);
}
}
}
return n;
}
else if(e>m){
int ans=0;
for(int i=0;i<n;i++){
if(p[i]==i)ans++;
}
return ans;
}
else if(e==m&&m==3){
vector<bool> vis(n,false);
int ans=0;
for(int i=0;i<n;i++){
if(vis[i])continue;
if(p[i]==i){
ans++;
continue;
}
int cnt=0;
for(int cur=i;;cur=p[cur]){
// cerr<<cur<<' '<<p[cur]<<endl;
vis[cur]=true;
cnt++;
if(p[cur]==i)break;
}
// cerr<<endl;
if(cnt==3){
t[0]=i,t[1]=p[t[0]],t[2]=p[t[1]];
int idx=Bob(t);
swap(p[t[u[idx]]],p[t[v[idx]]]);
ans++;
}
}
return ans;
}
return 100;
}
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
