Cod sursa(job #557494)

Utilizator vlad.doruIon Vlad-Doru vlad.doru Data 16 martie 2011 18:04:31
Problema PScNv Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream in("pscnv.in");
ofstream out("pscnv.out");

struct nod{
	int v,c;
};

int const INF=10000000;
int n,m,x,yf,cost[250005],coada[500000],p=0,u=0;
vector <nod> a[250005];

inline int max(int x, int y){
	if(x>y)
		return x;
	return y;
}

void BF(){
	int y,c,i,q;
	u++;
	coada[u]=x;
	p++;
	while(p<=u){
		q=coada[p];
		for(i=0;i<a[q].size();i++){
			y=a[q][i].v;
			c=a[q][i].c;
			if(c<cost[y] && cost[q]<cost[y]){
				cost[y]=max(c,cost[q]);
				u++;
				coada[u]=y;
			}
		}
		p++;
	}
}

void citire(){
	int aux1,i;
	nod aux;
	in>>n>>m>>x>>yf;
	while(m--){
		in>>aux1;
		in>>aux.v>>aux.c;
		a[aux1].push_back(aux);
	}
	for(i=1;i<=n;i++){
		cost[i]=INF;
	}
	cost[x]=0;
	BF();
	out<<cost[yf];
}

int main(){
	citire();
	return 0;
}