# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
467880 | 2021-08-25T10:18:00 Z | shanem_1401 | Cities (BOI16_cities) | C++14 | 246 ms | 262148 KB |
#include <bits/stdc++.h> #define pii pair<int, int> #define mp make_pair #define pb push_back #define fi first #define se second using namespace std; typedef long long ll; int n, m, k; int main() { scanf("%d %d %d",& n,& k,& m); vector<int>penting; for(int i=0; i<k; i++) { int temp; scanf("%d",& temp); penting.push_back(temp); } vector<pii>v[n+2]; for(int i=0; i<m; i++) { int from, to, cost; scanf("%d %d %d",& from,& to,& cost); v[from].pb(mp(cost, to)); v[to].pb(mp(cost, from)); } ll dist[n+2][n+2]; for(int i=1; i<=n; i++) fill(dist[i]+1, dist[i]+n+1, 2e18); if(k==2) { penting.resize(3, penting[0]); k=3; } for(int i=1; i<=n; i++) { priority_queue<pair<ll, int> >pq; pq.push(mp(0, i)); dist[i][i]=0; while(!pq.empty()) { ll cost=-pq.top().fi; int from=pq.top().se; pq.pop(); if(dist[i][from]!=cost) continue; for(int j=0; j<v[from].size(); j++) { int to=v[from][j].se; ll price=v[from][j].fi+cost; if(dist[i][to]>price) { dist[i][to]=price; pq.push(mp(-price, to)); } } } } ll mini=2e18; if(k==3) { for(int i=1; i<=n; i++) { ll total=0; for(int j=0; j<k; j++) total+=dist[penting[j]][i]; mini=min(mini, total); } } else { for(int x=1; x<=n; x++) { for(int y=1; y<=n; y++) { ll total=dist[x][y]; for(int j=0; j<k; j++) total+=min(dist[penting[j]][x], dist[penting[j]][y]); mini=min(mini, total); } } } printf("%lld\n", mini); } /* 6 4 5 1 2 4 5 1 3 1 2 3 2 4 6 1 5 6 2 3 6 3 */
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 204 KB | Output is correct |
2 | Correct | 1 ms | 204 KB | Output is correct |
3 | Correct | 1 ms | 204 KB | Output is correct |
4 | Correct | 1 ms | 204 KB | Output is correct |
5 | Incorrect | 1 ms | 288 KB | Output isn't correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 243 ms | 262148 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 192 ms | 8240 KB | Output is correct |
2 | Correct | 186 ms | 8280 KB | Output is correct |
3 | Correct | 71 ms | 8260 KB | Output is correct |
4 | Correct | 65 ms | 2272 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 219 ms | 262148 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 246 ms | 262148 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |