#include "icc.h"
#include <bits/stdc++.h>
using namespace std;
const int maxn = 105;
int n;
int ok[maxn][maxn];
int ask(vector<int> x, vector<int> y) {
int size_a = x.size(), size_b = y.size();
int a[size_a], b[size_b];
for(int i = 0; i < size_a; i++) a[i] = x[i];
for(int i = 0; i < size_b; i++) b[i] = y[i];
return query(size_a, size_b, a, b);
}
int chex(int u) {
vector<int> a = {u}, b;
for(int i = 1; i <= n; i++) {
if(i != u and !ok[u][i]) {
b.push_back(i);
}
}
if(b.empty()) return 0;
return ask(a, b);
}
int find_another(int u) {
for(int i = 1; i <= n; i++) {
if(i != u and !ok[u][i]) {
if(ask({u}, {i})) {
return i;
}
}
} assert(false);
}
void run(int N) {
memset(ok, 0, sizeof ok);
n = N;
while(true) {
int u = 0;
for(int i = 1; i <= n; i++)
if(chex(i)) { u = i; break; }
int v = find_another(u);
setRoad(u, v);
ok[u][v] = ok[v][u] = 1;
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
21 ms |
504 KB |
Ok! 301 queries used. |
2 |
Incorrect |
15 ms |
612 KB |
Wrong road! |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
29 ms |
904 KB |
Wrong road! |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
194 ms |
904 KB |
Wrong road! |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
344 ms |
904 KB |
Wrong road! |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
327 ms |
904 KB |
Number of queries more than 3550 out of 1775 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
280 ms |
904 KB |
Number of queries more than 3250 out of 1625 |
2 |
Halted |
0 ms |
0 KB |
- |