# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
302074 | TMJN | Simurgh (IOI17_simurgh) | C++17 | 71 ms | 512 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 "simurgh.h"
#include <bits/stdc++.h>
using namespace std;
int N,T[10];
vector<int>U,V,res;
bool B[30];
int par(int x){
if(T[x]==x)return x;
return T[x]=par(T[x]);
}
void uni(int x,int y){
x=par(x);
y=par(y);
T[x]=y;
}
void dfs(int x,int t){
if(t==N-1){
for(int i=0;i<N;i++){
T[i]=i;
}
for(int i=0;i<U.size();i++){
if(B[i]){
uni(U[i],V[i]);
}
}
bool f=true;
for(int i=0;i<N-1;i++){
if(par(i)!=par(i+1))f=false;
}
if(f){
vector<int>v;
for(int i=0;i<U.size();i++){
if(B[i]){
v.push_back(i);
}
}
if(count_common_roads(v)==N-1){
res=v;
}
}
}
else{
for(int i=x;i<U.size();i++){
B[i]=true;
dfs(i+1,t+1);
B[i]=false;
}
}
}
vector<int>find_roads(int n,vector<int>u,vector<int>v){
N=n;
U=u;
V=v;
dfs(0,0);
return res;
}
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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |