# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
72664 | 2018-08-26T13:52:30 Z | mhnd | Simurgh (IOI17_simurgh) | C++14 | 3 ms | 704 KB |
#include "simurgh.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; const int N = 2e5+50; const int oo = 1e9; const int mod = 1e9+7; vector<pair<int,int>> g[501]; int taken[501]; map<int,int> used; vector<int> find_roads(int n, vector<int> U, vector<int> V) { for(int i=0;i<U.size();i++){ g[U[i]].push_back({V[i],i}); g[V[i]].push_back({U[i],i}); } vector<int> ans; for(int i=0;i<n;i++){ for(int j=0;j<g[i].size();j++){ int v = g[i][j].first; int w = g[i][j].second; if(taken[i] && taken[v])continue; taken[i]++; taken[v]++; used[w]=1; ans.push_back(w); } } int lst = count_common_roads(ans); for(int i=0;i<ans.size();i++){ int cur = 0; taken[U[ans[i]]]--; taken[V[ans[i]]]--; //for(int i=0;i<n;i++)cout << taken[i] << ' '; //puts(""); bool f=0; for(int j=g[U[ans[i]]].size()-1;j>=0;j--){ int v = g[U[ans[i]]][j].first; int u = U[ans[i]]; if((taken[v] && taken[u]) || used[g[U[ans[i]]][j].second])continue; //cout << 1 << ' ' << u << ' ' << v << endl; int tmp = ans[i]; ans[i] = g[U[ans[i]]][j].second; cur = count_common_roads(ans); if(cur > lst){ taken[v]++; taken[u]++; used[ans[i]]=1; f=1; lst = cur; break; } ans[i] = tmp; } if(f)continue; for(int j=g[V[ans[i]]].size()-1;j>=0;j--){ int v = g[V[ans[i]]][j].first; int u = V[ans[i]]; if((taken[v] && taken[u]) || g[V[ans[i]]][j].second == i)continue; //cout << 2 << ' ' << u << ' ' << v << endl; int tmp = ans[i]; ans[i] = g[V[ans[i]]][j].second; //if(i==ans.size()-1)cout << ans[i] << endl; cur = count_common_roads(ans); if(cur > lst){ taken[v]--; taken[u]--; used[ans[i]]=1; f=1; lst = cur; break; } ans[i] = tmp; } if(f)continue; taken[U[ans[i]]]++; taken[V[ans[i]]]++; } return ans; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 252 KB | correct |
2 | Correct | 2 ms | 484 KB | correct |
3 | Incorrect | 3 ms | 484 KB | WA in grader: NO |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 252 KB | correct |
2 | Correct | 2 ms | 484 KB | correct |
3 | Incorrect | 3 ms | 484 KB | WA in grader: NO |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 252 KB | correct |
2 | Correct | 2 ms | 484 KB | correct |
3 | Incorrect | 3 ms | 484 KB | WA in grader: NO |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 544 KB | correct |
2 | Incorrect | 2 ms | 704 KB | WA in grader: NO |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 252 KB | correct |
2 | Correct | 2 ms | 484 KB | correct |
3 | Incorrect | 3 ms | 484 KB | WA in grader: NO |
4 | Halted | 0 ms | 0 KB | - |