Cod sursa(job #1141882)

Utilizator classiusCobuz Andrei classius Data 13 martie 2014 11:34:19
Problema PScNv Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
//#include <iostream>
#include<fstream>
#include<algorithm>
#include<vector>
#include<queue>

using namespace std;

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

int i,n,m,kmax,x,y;
vector<pair<int,int> > v[250001];
vector<int> c[250001];
int g[250001];

struct cmp{
    bool operator()(pair<int,int> x1,pair<int,int> x2){
        return x1.second>x2.second;
    }
};

priority_queue<pair<int,int>,vector<pair<int,int> >, cmp>  pq;

void parc(int x){
    if(x==y){
        return;
    }
    for(int i=0;i<v[x].size();i++){
        if(c[x][i]==0){
            pq.push(v[x][i]);
            c[x][i]=1;
        }
    }
    while(g[pq.top().first]){
        pq.pop();
    }
    pair<int,int> k=pq.top();
    pq.pop();
    kmax=k.second;
    parc(k.first);
}

int main(){
    cin>>n>>m>>x>>y;
    for(i=1;i<=m;i++){
        int a,b,k;
        cin>>a>>b>>k;
        v[a].push_back(make_pair(b,k));
        c[a].push_back(0);
    }
    parc(x);
    cout<<kmax;



    return 0;
}