Cod sursa(job #1040999)

Utilizator cosmin.pascaruPascaru Cosmin cosmin.pascaru Data 25 noiembrie 2013 12:38:58
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <cstdio>
#include <vector>
using namespace std;

int n,m,x,y,cost[30001],c[30001];

struct muchie
{
    int y,c;
};
vector <muchie> v[30001];
void citire()
{
    int a,b,c;
    muchie aux;

    scanf("%d%d%d%d",&n,&m,&x,&y);
    for (int i=1;i<=m;++i)
    {
        scanf("%d%d%d",&a,&b,&c);
        aux.y=b;
        aux.c=c;
        v[a].push_back(aux);
        aux.y=a;
        aux.c=-c;
        v[b].push_back(aux);
    }
}

void BF()
{
    int st=0,sf=0,k;
    c[0]=x;
    while (st<=sf)
    {
        k=c[st++];
        for (int i=0;i<v[k].size();i++)
            if (cost[v[k][i].y]==0) {
                cost[v[k][i].y]=cost[k]+v[k][i].c;
                c[++sf]=v[k][i].y;
            }
    }
}
int main()
{
    freopen("sate.in","r",stdin);
    freopen("sate.out","w",stdout);
    citire();
    BF();
    printf("%d",cost[y]);
    return 0;
}