Submission #165602

#TimeUsernameProblemLanguageResultExecution timeMemory
165602Peacher29Crocodile's Underground City (IOI11_crocodile)C++14
100 / 100
1139 ms66368 KiB
#include "crocodile.h"
#include<bits/stdc++.h>

using namespace std;

class pont{
public:
	vector<int> hova;
	vector<int> mennyiert;
	long long elso=INT_MAX;
	long long masodik=INT_MAX;
	bool volt=0;
};

vector<pont> p;
priority_queue<pair<int,int>> pq;

int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]){
	p.resize(N);
	for(int i=0;i<M;i++){
		p[R[i][0]].hova.push_back(R[i][1]);
		p[R[i][1]].hova.push_back(R[i][0]);
		p[R[i][0]].mennyiert.push_back(L[i]);
		p[R[i][1]].mennyiert.push_back(L[i]);
	}
	for(int i=0;i<K;i++){
		p[P[i]].elso=0;
		p[P[i]].masodik=0;
		pq.push({0,P[i]});
	}
	while(!pq.empty()){
		int ind = pq.top().second;
		if(!p[ind].volt) {
			p[ind].volt=1;
			for(int i = 0; i < p[ind].hova.size() ; i ++){
				int hov = p[ind].hova[i];
				if(p[hov].elso > max(p[hov].masodik, p[ind].mennyiert[i] + p[ind].elso)){
					p[hov].elso = max(p[hov].masodik, p[ind].mennyiert[i] + p[ind].elso);
					pq.push({-p[hov].elso,hov});
				}
				if(p[hov].masodik > p[ind].mennyiert[i] + p[ind].elso){
					p[hov].masodik = p[ind].mennyiert[i] + p[ind].elso;
				}
			}
		}
		pq.pop();
	}
	/*for(int i=0;i<N;i++){
		cout << i << ' ' << p[i].elso << ' ' << p[i].masodik << " ; ";
		for(int j : p[i].mennyiert){
			cout << j << ' ';
		}
		cout << '\n';
	}*/
return p[0].elso;
}

Compilation message (stderr)

crocodile.cpp: In function 'int travel_plan(int, int, int (*)[2], int*, int, int*)':
crocodile.cpp:35:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(int i = 0; i < p[ind].hova.size() ; i ++){
                   ~~^~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...