이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "grader.h"
#include <bits/stdc++.h>
using namespace std;
int solved[260];
void solve(int N){
memset(solved,0,sizeof(solved));
vector<int> qu;
for (int x = 1; x<=N; x++){
qu.push_back(x);
}
for (int x = 0; x<N; x++){
if (solved[x]) continue;
int minv = -1;
int p1 = -1;
int p2 = -1;
for (int y = x; y<N; y++){
if (solved[y]) continue;
//printf("%d %d\n",qu[x],qu[y]);
swap(qu[x],qu[y]);
//printf("%d %d\n",qu[x],qu[y]);
int res = query(qu);
if (res==N) return;
if (res>minv){
p1 = y;
p2 = -1;
minv = res;
}
else if (res==minv){
p2 = y;
}
swap(qu[x],qu[y]);
}
//printf("%d %d pos\n",p1,p2);
if (p2==-1){
swap(qu[x],qu[p1]);
solved[x] = true;
solved[p1] = true;
}
else{
//printf("figuring out\n");
swap(qu[x],qu[p1]);
swap(qu[p1],qu[p2]);
int res = query(qu);
if (res==N) return;
if (res>minv){
solved[x] = true;
solved[p2] = true;
}
else{
swap(qu[p1],qu[p2]);
swap(qu[x],qu[p2]);
solved[x] = true;
solved[p1] = true;
}
}
}
query(qu);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |