# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
57058 | 2018-07-13T17:28:02 Z | dennisstar | 주유소 (KOI16_gas) | C++11 | 268 ms | 50236 KB |
#include <bits/stdc++.h> #define mkp(a,b) make_pair(a,b) typedef long long LL; using namespace std; int N,M; int P[2510]; LL dist[2510][2510], Dp[2510]; vector<int> R[2510], D[2510]; int arr[2510]; bool cmp(int a, int b){return P[a]<P[b];} priority_queue< pair<LL,int>, vector< pair<LL,int> >, greater< pair<LL,int> > > PQ; int chk[2510]; void djk(int lev) { memset(chk, 0, sizeof(chk)); while(!PQ.empty()) PQ.pop(); PQ.push(mkp(0,lev)); int lv, i; LL ds; while(!PQ.empty()) { ds=PQ.top().first; lv=PQ.top().second; PQ.pop(); if (chk[lv]) continue; dist[lev][lv]=ds; chk[lv]=1; for (i=0; i<R[lv].size(); i++) { if(chk[R[lv][i]]) continue; PQ.push(mkp(ds+(LL)D[lv][i],R[lv][i])); } } } int main() { scanf("%d %d", &N, &M); int i, j, k, x, y; for (i=1; i<=N; i++) scanf("%d",&P[i]); for (i=0; i<M; i++) { scanf("%d %d %d", &x, &y, &j); R[x].push_back(y); R[y].push_back(x); D[x].push_back(j); D[y].push_back(j); } for (i=1; i<=N; i++) arr[i]=i; sort(arr+2,arr+N,cmp); for (i=1; i<=N; i++) djk(i); for (j=2; P[arr[j]]>=P[1]; ) j++; for (i=j; i<=N; i++) { Dp[arr[i]]=(LL)P[1]*dist[1][arr[i]]; for (k=j; k<i; k++) { Dp[arr[i]]=std::min(Dp[arr[i]], Dp[arr[k]]+(LL)P[arr[k]]*dist[arr[k]][arr[i]]); } } printf("%lld", Dp[N]); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 508 KB | Output is correct |
2 | Correct | 2 ms | 616 KB | Output is correct |
3 | Correct | 3 ms | 616 KB | Output is correct |
4 | Correct | 3 ms | 628 KB | Output is correct |
5 | Correct | 3 ms | 664 KB | Output is correct |
6 | Incorrect | 2 ms | 872 KB | Output isn't correct |
7 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 266 ms | 50136 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 268 ms | 50236 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 508 KB | Output is correct |
2 | Correct | 2 ms | 616 KB | Output is correct |
3 | Correct | 3 ms | 616 KB | Output is correct |
4 | Correct | 3 ms | 628 KB | Output is correct |
5 | Correct | 3 ms | 664 KB | Output is correct |
6 | Incorrect | 2 ms | 872 KB | Output isn't correct |
7 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 508 KB | Output is correct |
2 | Correct | 2 ms | 616 KB | Output is correct |
3 | Correct | 3 ms | 616 KB | Output is correct |
4 | Correct | 3 ms | 628 KB | Output is correct |
5 | Correct | 3 ms | 664 KB | Output is correct |
6 | Incorrect | 2 ms | 872 KB | Output isn't correct |
7 | Halted | 0 ms | 0 KB | - |