| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 261849 | Sakamotoo | Crocodile's Underground City (IOI11_crocodile) | C++14 | 1014 ms | 91008 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 "crocodile.h"
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define fi first
#define se second
int travel_plan(int n, int m, int r[][2], int l[], int k, int p[]){
	priority_queue<long long> jar[n+1];
	vector<pair<long long, long long> > adj[n+1];
	for(int i=0; i<m; i++){
		adj[r[i][0]].push_back(mp(r[i][1],l[i]));
		adj[r[i][1]].push_back(mp(r[i][0],l[i]));
	}
	
	priority_queue<pair<long long, long long> > pq;
	
	for(int i=0; i<k; i++){
		jar[p[i]].push(0);
		jar[p[i]].push(0);
		pq.push(mp(0,p[i]));
	}
	
	while(!pq.empty()){
		long long x=-pq.top().fi,y=pq.top().se;
		pq.pop();
		if(jar[y].top()<x) continue;
		for(int i=0; i<adj[y].size(); i++){
			long long ind=adj[y][i].fi,cost=adj[y][i].se;
			if(jar[ind].size()<2){
				jar[ind].push(x+cost);
				if(jar[ind].size()==2){
					pq.push(mp(-jar[ind].top(),ind));
				}
			}else{
				if(jar[ind].top()>x+cost){
					jar[ind].pop();
					jar[ind].push(x+cost);
					pq.push(mp(-jar[ind].top(),ind));
				}
			}
		}
	}
	return jar[0].top();
}
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... | ||||
