Cod sursa(job #792067)

Utilizator iulishorIulian Popescu iulishor Data 26 septembrie 2012 13:21:01
Problema PScNv Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include<cstdio>
#include<vector>
#include<queue>
#include<algorithm>
#define dim 250001
#define inf 0x3f3f3f
using namespace std;
int n,m,inc,fin;
struct nod
{
    int y,cost;
};
vector< vector< nod > > mat(dim);
vector<int> kmin(dim,inf);
inline void citire()
{
    freopen("pscnv.in","r",stdin);
    scanf("%d%d%d%d",&n,&m,&inc,&fin);
    for(;m;--m)
    {
        int x,y,c;
        scanf("%d%d%d",&x,&y,&c);
        mat[x].push_back( (nod) {y,c} );
    }
}
inline void rezolva()
{
    queue<int> q;
    q.push(inc);
    kmin[inc]=0;
    while( ! q.empty() )
    {
        int x=q.front();
        for(int i=0;i<mat[x].size();++i)
            if( kmin[ mat[x][i].y ] > max( kmin[x], mat[x][i].cost ) )
            {
                kmin[ mat[x][i].y ] = max( kmin[x], mat[x][i].cost );
                q.push( mat[x][i].y );
            }
        q.pop();
    }
}
inline void afisare()
{
    freopen("pscnv.out","w",stdout);
    printf("%d ",kmin[fin]);
}
int main()
{
    citire();
    rezolva();
    afisare();
}