Cod sursa(job #739714)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 23 aprilie 2012 19:11:44
Problema PScNv Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;

int n,m,x,y,mx,vl;
short cst[250100];
vector< pair<int,short> > A[250100];
queue<int> Q;

int main()
{
    ifstream in("pscnv.in");
    ofstream out("pscnv.out");

    int x1,y1,c;
    in>>n>>m>>x>>y;
    for(int i=1;i<=m;++i)
    {
        in>>x1>>y1>>c;
        cst[x1]=cst[y1]=2000;
        if(mx<c)
        {
            mx=c;
        }
        A[x1].push_back(make_pair(y1,c));
        //A[y1].push_back(make_pair(x1,c));
    }

    Q.push(x);
    cst[x]=0;
    for(;!Q.empty();Q.pop())
    {
        int ret=Q.front();
        for(vector< pair<int,short> >::iterator it=A[ret].begin();it!=A[ret].end();++it)
        {
            if(cst[it->first]>max(cst[ret],it->second))
            {
                cst[it->first]=max(cst[ret],it->second);
                Q.push(it->first);
            }
        }
    }

    out<<cst[y]<<'\n';
    out.close();
    return 0;
}