Cod sursa(job #2205530)

Utilizator Andrei_CotorAndrei Cotor Andrei_Cotor Data 19 mai 2018 14:18:42
Problema PScNv Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
ifstream fi("pscnv.in");
ofstream fo("pscnv.out");
int n,m,x,y,a,b,c,C[250005],i;
vector<pair<int,int> > V[250005];
priority_queue<pair<int,int> > Q;
vector<pair<int,int> >::iterator it;
pair<int,int> val;
int main()
{
    fi>>n>>m>>x>>y;
    for(i=1; i<=m; i++)
    {
        fi>>a>>b>>c;
        V[a].push_back({b,c});
    }
    for(i=1; i<=n; i++)
        C[i]=-1;
    C[x]=0;
    Q.push({0,x});
    while(!Q.empty())
    {
        val=Q.top();
        Q.pop();
        if(C[val.second]!=-val.first)
            continue;
        for(it=V[val.second].begin(); it!=V[val.second].end(); it++)
        {
            c=max((*it).second,-val.first);
            if(C[(*it).first]==-1 || C[(*it).first]>c)
            {
                C[(*it).first]=c;
                Q.push({-c,(*it).first});
            }
        }
    }
    fo<<C[y]<<"\n";
    fi.close();
    fo.close();
    return 0;
}