#include <bits/stdc++.h>
#include "grader.h"
using namespace std;
void solve(int n)
{
int a, i, j, k;
vector<int> q, val, poz;
if (n == 1)
{
query({1});
return;
}
for (i = 1; i <= n; i++)
{
q.push_back( i );
val.push_back( -1 );
poz.push_back( -1 );
}
a = query(q);
while (a < n && a > 0)
{
random_shuffle(q.begin(), q.end());
a = query(q);
}
if ( query( q ) == n )
return;
for (i = 0; i < n; i++)
{
for (j = i + 1; j < n; j++)
{
if (i != j)
{
if (val[i] != -1 && val[j] != -1)
continue;
swap(q[i], q[j]);
a = query(q);
if (a == 2)
{
val[i] = q[i];
val[j] = q[j];
}
else if (a == 1)
{
if (val[i] == -1 && val[j] == -1)
{
k = ((i + 1 != j) ? i + 1 : (i + 2 < n ? i + 2 : i - 1));
swap( q[i], q[k] );
a = query( q );
if (a == 3)
{
val[i] = q[i];
val[j] = q[j];
val[k] = q[k];
}
else if (a == 2)
val[j] = q[j];
else if (a == 1)
val[j] = q[j];
else
val[i] = q[k];
swap(q[i], q[k]);
}
else
{
if (val[i] != -1 &&val[i] != q[i])
val[j] = q[j];
else if (val[j] != -1 && val[j] != q[j])
val[i] = q[i];
}
}
swap(q[i], q[j]);
}
}
}
query( val );
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 25 |
2 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 10 |
3 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 18 |
4 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 22 |
5 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 21 |
6 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 32 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 25 |
2 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 10 |
3 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 18 |
4 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 22 |
5 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 21 |
6 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 32 |
7 |
Correct |
10 ms |
208 KB |
Correct! Number of queries: 1000 |
8 |
Correct |
9 ms |
208 KB |
Correct! Number of queries: 1000 |
9 |
Correct |
16 ms |
208 KB |
Correct! Number of queries: 900 |
10 |
Correct |
11 ms |
208 KB |
Correct! Number of queries: 1000 |
11 |
Correct |
9 ms |
208 KB |
Correct! Number of queries: 700 |
12 |
Correct |
7 ms |
208 KB |
Correct! Number of queries: 1000 |
13 |
Correct |
8 ms |
208 KB |
Correct! Number of queries: 800 |
14 |
Correct |
13 ms |
208 KB |
Correct! Number of queries: 1100 |
15 |
Correct |
13 ms |
208 KB |
Correct! Number of queries: 1000 |
16 |
Correct |
11 ms |
208 KB |
Correct! Number of queries: 1000 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 25 |
2 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 10 |
3 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 18 |
4 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 22 |
5 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 21 |
6 |
Correct |
1 ms |
208 KB |
Correct! Number of queries: 32 |
7 |
Correct |
10 ms |
208 KB |
Correct! Number of queries: 1000 |
8 |
Correct |
9 ms |
208 KB |
Correct! Number of queries: 1000 |
9 |
Correct |
16 ms |
208 KB |
Correct! Number of queries: 900 |
10 |
Correct |
11 ms |
208 KB |
Correct! Number of queries: 1000 |
11 |
Correct |
9 ms |
208 KB |
Correct! Number of queries: 700 |
12 |
Correct |
7 ms |
208 KB |
Correct! Number of queries: 1000 |
13 |
Correct |
8 ms |
208 KB |
Correct! Number of queries: 800 |
14 |
Correct |
13 ms |
208 KB |
Correct! Number of queries: 1100 |
15 |
Correct |
13 ms |
208 KB |
Correct! Number of queries: 1000 |
16 |
Correct |
11 ms |
208 KB |
Correct! Number of queries: 1000 |
17 |
Runtime error |
130 ms |
284 KB |
Execution killed with signal 13 |
18 |
Halted |
0 ms |
0 KB |
- |