제출 #296969

#제출 시각아이디문제언어결과실행 시간메모리
296969MuhammetaliSimurgh (IOI17_simurgh)C++11
0 / 100
4 ms384 KiB
#include "simurgh.h" #include <bits/stdc++.h> #define mp make_pair #define f first #define s second #define sz(x) (int)(x).size() #define rsz resize #define ins insert #define ft front() #define bk back() #define pf push_front #define pb push_back #define eb emplace_back #define lb lower_bound #define ub upper_bound using namespace std; typedef long long ll; typedef long double ld; typedef pair<int,int> pi; typedef pair<ll,ll> pl; typedef vector<int> vi; typedef vector<bool> vb; typedef vector<ll> vl; typedef vector<pi> vpi; typedef vector<pl> vpl; bool vis[1000]; vi res,barla; vpi node[1000]; void func(int h,int n,int m) { if (sz(barla)==n-1) { int g=count_common_roads(barla); if (g==n-1) { res.clear(); for (int i=0;i<sz(barla);i++) res.pb(barla[i]); } return; } for (int i=0;i<sz(node[h]);i++) { if (!vis[node[h][i].f]) { vis[node[h][i].f]=1; barla.pb(node[h][i].s); func(node[h][i].f,n,m); vis[node[h][i].f]=0; barla.pop_back(); } } } vector<int> find_roads(int n, vector<int> u, vector<int> v) { int m=sz(u); for (int i=0;i<m;i++) { node[u[i]].pb({v[i],i}); node[v[i]].pb({u[i],i}); } for (int i=0;i<n-1;i++) { vis[i]=1; func(i,n,m); if (sz(res)!=0)break; vis[i]=0; } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...