제출 #262153

#제출 시각아이디문제언어결과실행 시간메모리
262153WLZTeleporters (IOI08_teleporters)C++14
75 / 100
1093 ms65540 KiB
#include <bits/stdc++.h> using namespace std; vector< vector<int> > g; vector<bool> was; int sz = 0; void dfs(int u) { was[u] = true; for (auto& v : g[u]) { sz++; if (!was[v]) { dfs(v); } } } int main() { ios::sync_with_stdio(false); cin.tie(0); int n, m; cin >> n >> m; map<int, int> other; vector<int> a; for (int i = 0; i < n; i++) { int w, e; cin >> w >> e; other[w] = e; other[e] = w; a.push_back(e); a.push_back(w); } sort(a.begin(), a.end()); g.resize(2 * n + 1); for (int i = 0; i < 2 * n; i++) { g[i].push_back(upper_bound(a.begin(), a.end(), other[a[i]]) - a.begin()); } was.assign(2 * n + 1, false); dfs(0); int ans = sz; priority_queue<int> pq; for (int i = 0; i <= 2 * n; i++) { if (!was[i]) { sz = 0; dfs(i); pq.push(sz); } } while (m > 0 && !pq.empty()) { ans += pq.top() + 2; pq.pop(); m--; } while (m > 0) { ans++; m--; if (m > 0) { ans += 3; m--; } } cout << ans + m << '\n'; return 0; }
#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...
#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...
#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...
#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...