이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "chameleon.h"
#include <bits/stdc++.h>
using namespace std;
const int nx=1e3+5;
int vs[nx], v[nx][nx];
vector<int> d[nx];
void Solve(int N) {
for (int i=1; i<=2*N; i++) for (int j=1; j<i; j++) if (Query(vector<int> {i, j})==1) d[i].push_back(j), d[j].push_back(i);
for (int i=1; i<=2*N; i++)
{
if (vs[i]) continue;
if (d[i].size()==1)
{
Answer(i, d[i][0]);
vs[i]=vs[d[i][0]]=1;
continue;
}
bool f=0;
for (int j=0; j<2; j++)
{
vector<int> qrs;
qrs.push_back(i);
for (int k=0; k<3; k++) if (k!=j) qrs.push_back(d[i][k]);
if (Query(qrs)==1)
{
f=1;
v[i][d[i][j]]=v[d[i][j]][i]=1;
break;
}
}
if (!f) v[i][d[i][2]]=v[d[i][2]][i]=1;
}
for (int i=1; i<=2*N; i++)
{
if (vs[i]) continue;
for (int j=0; j<3; j++) if (!vs[d[i][j]]&&!vs[i]&&!v[i][d[i][j]]) vs[i]=vs[d[i][j]]=1, Answer(i, d[i][j]);
}
}
# | 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... |