제출 #773388

#제출 시각아이디문제언어결과실행 시간메모리
773388JomnoiShortcut (IOI16_shortcut)C++17
0 / 100
40 ms94156 KiB
#include <bits/stdc++.h> #include "shortcut.h" using namespace std; const int MAX_N = 2e6 + 5; const long long INF = 1e18 + 7; int n; set <pair <int, int>> graph[MAX_N]; long long dist[MAX_N]; bool visited[MAX_N]; void bfs(int s) { for (int i = 0; i < 2 * n; i++) { dist[i] = INF; visited[i] = false; } priority_queue <pair <long long, int>> pq; pq.emplace(0, s); dist[s] = 0; while (!pq.empty()) { auto [d, u] = pq.top(); pq.pop(); if (visited[u] == true) continue; visited[u] = true; for (auto [v, w] : graph[u]) { if (visited[v] == false and dist[u] + w < dist[v]) { dist[v] = dist[u] + w; pq.emplace(-dist[v], v); } } } } long long find_shortcut(int n, vector <int> l, vector <int> d, int c) { ::n = n; for (int i = 0; i < n - 1; i++) { graph[i].emplace(i + 1, l[i]); graph[i + 1].emplace(i, l[i]); } for (int i = 0; i < n; i++) { graph[i].emplace(n + i, d[i]); graph[n + i].emplace(i, d[i]); } long long ans = INF; for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { bool ok = false; if (!graph[i].count(make_pair(j, c))) { ok = true; graph[i].emplace(j, c); graph[j].emplace(i, c); } bfs(0); long long max_dist = 0; int st = -1; for (int i = 0; i < 2 * n; i++) { if (max_dist < dist[i]) { max_dist = dist[i]; st = i; } } bfs(st); max_dist = 0; for (int i = 0; i < 2 * n; i++) max_dist = max(max_dist, dist[i]); ans = min(ans, max_dist); if (ok == true) { graph[i].erase(make_pair(j, c)); graph[j].erase(make_pair(i, c)); } } } return ans; }
#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...