#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>
#include <math.h>
#include <map>
#include "icc.h"
#define pb push_back
#define mp make_pair
#define fi first
#define se second
using namespace std;
ifstream in("input.txt");
ofstream out("output.txt");
typedef long long ll;
int n;
vector<int> nodi[101];
bool vis[101];
bool pres[101][101];
int ar,br;
//int query(int size_a, int size_b, int a[], int b[]);
//void setRoad(int a, int b);
void dfs(int k){
vis[k]=1;
for(int i=0;i<(int)nodi[k].size();i++){
if(vis[nodi[k][i]])continue;
vis[nodi[k][i]]=1;
dfs(nodi[k][i]);
}
}
void run(int N){
n=N;
for(int i=0;i<n-1;i++){
bool flag=1;
for(int y=1;y<=n&&flag;y++){
int tot=0;
for(int j=1;j<=n;j++){
vis[j]=0;
}
dfs(y);
vector<int> ap;
for(int j=1;j<=n;j++){
if(!vis[j])ap.pb(j);
}
tot=(int)ap.size();
int f[tot];
int g[1];
g[0]=y;
for(int j=0;j<tot;j++)f[j]=ap[j];
if(query(1,tot,g,f)){
for(int j=1;j<=n;j++){
if(vis[j])continue;
int p[1];
int b[1];
p[0]=y;
b[0]=j;
if(query(1,1,p,b)){
setRoad(y,j);
nodi[i].pb(j);
nodi[j].pb(i);
flag=0;
break;
}
}
}
}
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
7 ms |
632 KB |
Wrong road! |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
22 ms |
504 KB |
Wrong road! |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
52 ms |
632 KB |
Wrong road! |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
69 ms |
504 KB |
Wrong road! |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
71 ms |
564 KB |
Wrong road! |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
54 ms |
632 KB |
Wrong road! |
2 |
Halted |
0 ms |
0 KB |
- |