Cod sursa(job #67504)

Utilizator crawlerPuni Andrei Paul crawler Data 25 iunie 2007 10:39:22
Problema Sate Scor 80
Compilator cpp Status done
Runda preONI 2007, Runda Finala, Clasa a 9-a si gimnaziu Marime 0.82 kb
#include <cstdio>
#include <vector>

using namespace std;

#define Nmax 30100

vector<int> l[Nmax],c[Nmax];
char v[Nmax];

int ret[Nmax];

void DF(int nod, int cost)
{
        v[nod] = 1;
        ret[nod] = cost;
        for (int i=0;i<l[nod].size();++i)
        if(v[l[nod][i]] == 0)
            DF(l[nod][i],cost+c[nod][i]);
}

int main()
{
        freopen("sate.in","r",stdin);
        freopen("sate.out","w",stdout);

        int n,m,x,y,a,b,C;

        scanf("%d%d%d%d",&n,&m,&x,&y);

        for (int i=1;i<=m;++i)
        {
                scanf("%d%d%d",&a,&b,&C);
                l[a].push_back(b); c[a].push_back(C);
                l[b].push_back(a); c[b].push_back(-C);
        }

        if(x > y) x^=y^=x^=y;

        DF(x,0);

        printf("%d ",ret[y]);

        return 0;
}