이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "simurgh.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<int>vi;
#define pb push_back
#define sz(x) (int)x.size()
#define all(x) begin(x),end(x)
#define FOR(i,a,b) for(int i=a; i<b; i++)
//--------------------------------
const int MX=100;
int N;
vi adj[MX];
vi vis(MX);
void dfs(int u){
vis[u]=1;
for(int v: adj[u]) if(!vis[v]) dfs(v);
}
bool check(){
FOR(i,0,N) vis[i]=0;
dfs(0);
FOR(i,0,N) if(!vis[i]) return 0;
return 1;
}
vi find_roads(int N, vi U, vi V) {
int M=sz(U);
::N=N;
FOR(m,1,1<<M){
FOR(i,0,N) adj[i].clear();
vi vec;
FOR(i,0,M) if((m>>i)&1){
int u=U[i],v=V[i];
adj[u].pb(v);
adj[v].pb(u);
vec.pb(i);
}
if(sz(vec)==N-1 && check() && count_common_roads(vec)==N-1){
return vec;
}
}
assert(0);
}
/*
4 6
0 1
0 2
0 3
1 2
1 3
2 3
0 1 5
*/
# | 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... |