This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "chameleon.h"
#include <vector>
using namespace std;
vector<int> con[1005];
bool visit[1005];
bool answered[1005];
int l[1005];
void Solve(int N)
{
for (int i = 1; i <= 2 * N; i++)
{
for (int j = i + 1; j <= 2 * N; j++)
{
if (i == j)
continue;
auto q = Query({ i, j });
if (q == 1)
{
con[i].push_back(j);
con[j].push_back(i);
}
}
}
for (int i = 1; i <= 2 * N; i++)
{
if (visit[i])
continue;
if (con[i].size() == 1)
{
Answer(i, con[i][0]);
visit[i] = visit[con[i][0]] = true;
answered[i] = answered[con[i][0]] = true;
continue;
}
if (con[con[i][0]].size() == 1)
{
Answer(i, con[i][0]);
visit[i] = visit[con[i][0]] = true;
answered[i] = answered[con[i][0]] = true;
}
else if (con[con[i][1]].size() == 1)
{
Answer(i, con[i][1]);
visit[i] = visit[con[i][1]] = true;
answered[i] = answered[con[i][1]] = true;
}
else if (con[con[i][2]].size() == 1)
{
Answer(i, con[i][2]);
visit[i] = visit[con[i][2]] = true;
answered[i] = answered[con[i][2]] = true;
}
else
{
vector<int> a = { i, con[i][0], con[i][1] };
vector<int> b = { i, con[i][0], con[i][2] };
vector<int> c = { i, con[i][1], con[i][2] };
auto aq = Query(a);
auto bq = Query(b);
auto cq = Query(c);
if(aq == 1)
{
visit[i] = true;
l[i] = con[i][2];
}
else if (bq == 1)
{
visit[i] = true;
l[i] = con[i][1];
}
else
{
visit[i] = true;
l[i] = con[i][0];
}
}
}
for (int i = 1; i <= 2 * N; i++)
{
if (answered[i])
continue;
for (auto& c : con[i])
{
if (c == l[i] || l[c] == i || answered[c])
continue;
Answer(i, c);
answered[i] = answered[c] = true;
break;
}
}
}
Compilation message (stderr)
chameleon.cpp: In function 'void Solve(int)':
chameleon.cpp:68:9: warning: unused variable 'cq' [-Wunused-variable]
68 | auto cq = Query(c);
| ^~
# | 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... |