# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
22986 | 2017-05-01T02:39:30 Z | model_code | Network (BOI15_net) | C++11 | 2000 ms | 14364 KB |
/*/ Task: net Brute-force solution Without early termination With O(n^2) bridge finding Author: Bartosz Kostka /*/ #include "bits/stdc++.h" using namespace std; const int MAXN = 500007; vector <int> L, G[MAXN]; vector <int> S; int w, n; int licz; bool vis[MAXN]; void dfs(int v) { vis[v] = true; for(auto w : G[v]) if(vis[w]==false) dfs(w); } bool bridges() { for(int i=1; i<=n; i++) for(int j=0; j<(int)G[i].size(); j++) { int c = G[i][j]; swap(G[i][j], G[i].back()); G[i].pop_back(); for(int k=1; k<=n; k++) vis[k] = false; dfs(1); G[i].push_back(c); swap(G[i][j], G[i].back()); for(int k=1; k<=n; k++) if(!vis[k]) return true; } return false; } void go(vector <int> &L, vector <int> &A) { if(L.size() <= 1) { if(!L.empty()) { G[L[0]].push_back(w); G[w].push_back(L[0]); A.push_back(L[0]); A.push_back(w); if(bridges()==false) S = A; A.pop_back(); A.pop_back(); G[w].pop_back(); G[L[0]].pop_back(); } else { if(bridges()==false) S = A; } return; } int a = L.back(); L.pop_back(); int ls = (int)L.size(); A.push_back(a); for(int i=0; i<ls; i++) { swap(L[i], L.back()); int b = L.back(); L.pop_back(); G[a].push_back(b); G[b].push_back(a); A.push_back(b); go(L,A); A.pop_back(); G[b].pop_back(); G[a].pop_back(); L.push_back(b); swap(L[i], L.back()); } A.pop_back(); L.push_back(a); } int main() { scanf("%d", &n); for(int i=1; i<n; i++) { int a, b; scanf("%d%d", &a, &b); G[a].push_back(b); G[b].push_back(a); } for(int i=1; i<=n; i++) { if((int)G[i].size() == 1) L.push_back(i); else w = i; } vector <int> AA; go(L,AA); printf("%d\n", (int)S.size()/2); for(int i=0; i<(int)S.size(); i+=2) printf("%d %d\n", S[i], S[i+1]); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 14232 KB | Output is correct |
2 | Correct | 3 ms | 14232 KB | Output is correct |
3 | Correct | 6 ms | 14232 KB | Output is correct |
4 | Correct | 0 ms | 14232 KB | Output is correct |
5 | Correct | 0 ms | 14232 KB | Output is correct |
6 | Correct | 0 ms | 14232 KB | Output is correct |
7 | Correct | 0 ms | 14232 KB | Output is correct |
8 | Correct | 0 ms | 14232 KB | Output is correct |
9 | Correct | 0 ms | 14232 KB | Output is correct |
10 | Correct | 3 ms | 14232 KB | Output is correct |
11 | Correct | 3 ms | 14232 KB | Output is correct |
12 | Correct | 0 ms | 14232 KB | Output is correct |
13 | Correct | 0 ms | 14232 KB | Output is correct |
14 | Correct | 0 ms | 14232 KB | Output is correct |
15 | Correct | 3 ms | 14232 KB | Output is correct |
16 | Correct | 6 ms | 14232 KB | Output is correct |
17 | Correct | 6 ms | 14232 KB | Output is correct |
18 | Correct | 0 ms | 14232 KB | Output is correct |
19 | Correct | 3 ms | 14232 KB | Output is correct |
20 | Correct | 0 ms | 14232 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 14232 KB | Output is correct |
2 | Correct | 3 ms | 14232 KB | Output is correct |
3 | Correct | 6 ms | 14232 KB | Output is correct |
4 | Correct | 0 ms | 14232 KB | Output is correct |
5 | Correct | 0 ms | 14232 KB | Output is correct |
6 | Correct | 0 ms | 14232 KB | Output is correct |
7 | Correct | 0 ms | 14232 KB | Output is correct |
8 | Correct | 0 ms | 14232 KB | Output is correct |
9 | Correct | 0 ms | 14232 KB | Output is correct |
10 | Correct | 3 ms | 14232 KB | Output is correct |
11 | Correct | 3 ms | 14232 KB | Output is correct |
12 | Correct | 0 ms | 14232 KB | Output is correct |
13 | Correct | 0 ms | 14232 KB | Output is correct |
14 | Correct | 0 ms | 14232 KB | Output is correct |
15 | Correct | 3 ms | 14232 KB | Output is correct |
16 | Correct | 6 ms | 14232 KB | Output is correct |
17 | Correct | 6 ms | 14232 KB | Output is correct |
18 | Correct | 0 ms | 14232 KB | Output is correct |
19 | Correct | 3 ms | 14232 KB | Output is correct |
20 | Correct | 0 ms | 14232 KB | Output is correct |
21 | Correct | 0 ms | 14232 KB | Output is correct |
22 | Execution timed out | 2000 ms | 14364 KB | Execution timed out |
23 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 14232 KB | Output is correct |
2 | Correct | 3 ms | 14232 KB | Output is correct |
3 | Correct | 6 ms | 14232 KB | Output is correct |
4 | Correct | 0 ms | 14232 KB | Output is correct |
5 | Correct | 0 ms | 14232 KB | Output is correct |
6 | Correct | 0 ms | 14232 KB | Output is correct |
7 | Correct | 0 ms | 14232 KB | Output is correct |
8 | Correct | 0 ms | 14232 KB | Output is correct |
9 | Correct | 0 ms | 14232 KB | Output is correct |
10 | Correct | 3 ms | 14232 KB | Output is correct |
11 | Correct | 3 ms | 14232 KB | Output is correct |
12 | Correct | 0 ms | 14232 KB | Output is correct |
13 | Correct | 0 ms | 14232 KB | Output is correct |
14 | Correct | 0 ms | 14232 KB | Output is correct |
15 | Correct | 3 ms | 14232 KB | Output is correct |
16 | Correct | 6 ms | 14232 KB | Output is correct |
17 | Correct | 6 ms | 14232 KB | Output is correct |
18 | Correct | 0 ms | 14232 KB | Output is correct |
19 | Correct | 3 ms | 14232 KB | Output is correct |
20 | Correct | 0 ms | 14232 KB | Output is correct |
21 | Correct | 0 ms | 14232 KB | Output is correct |
22 | Execution timed out | 2000 ms | 14364 KB | Execution timed out |
23 | Halted | 0 ms | 0 KB | - |