# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
876241 | danikoynov | Super Dango Maker (JOI22_dango3) | C++17 | 169 ms | 756 KiB |
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 "dango3.h"
#include <bits/stdc++.h>
using namespace std;
int get_query(vector < int > lf, vector < int > rf)
{
for (int cur : rf)
lf.push_back(cur);
return Query(lf);
}
void sub_solve(vector < int > &d)
{
if (Query(d) == 0)
return;
vector < int > lf, rf;
for (int i = 0; i < d.size(); i ++)
{
if (rand() % 2 == 0)
lf.push_back(d[i]);
else
rf.push_back(d[i]);
}
sub_solve(lf);
sub_solve(rf);
vector < int > df;
for (int cur : lf)
df.push_back(cur);
for (int cur : rf)
df.push_back(cur);
int cnt = Query(df);
for (int t = 0; t < cnt; t++)
{
vector < int > secure, trash;
while(!df.empty())
{
int bk = df.back();
df.pop_back();
if (get_query(df, secure) == 0)
secure.push_back(bk);
else
trash.push_back(bk);
}
Answer(secure);
df = trash;
}
d = df;
}
void Solve(int N, int M)
{
vector < int > d;
for (int i = 1; i <= N * M; i ++)
d.push_back(i);
sub_solve(d);
}
Compilation message (stderr)
# | 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... |