| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 57063 | dennisstar | 주유소 (KOI16_gas) | C++11 | 1952 ms | 27440 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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];
int dist[2510][2510]; long long 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<int,int>, vector< pair<int,int> >, greater< pair<int,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, 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+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;
	for (i=1; i<=N; i++) djk(i);
	sort(arr+2,arr+N,cmp);
	for (j=2; P[arr[j]]>=P[1]&&j<N; ) j++;
	for (i=j; i<=N; i++) {
		Dp[arr[i]]=(LL)P[1]*(LL)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 (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
