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 <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> a;
for(int j=1;j<=n;j++){
if(!vis[j])a.pb(j);
}
tot=(int)a.size();
int f[tot];
int g[1];
g[0]=y;
for(int j=0;j<tot;j++)f[j]=a[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[y].pb(j);
nodi[j].pb(y);
flag=0;
break;
}
}
}
}
}
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |