Cod sursa(job #1129799)

Utilizator mads2194FMI - Andrei Stroe mads2194 Data 28 februarie 2014 09:28:14
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<cstdio>
#include<vector>
 
#define NM 30002
 
using namespace std;
 
struct elem
{
    int d,to;
};
 
vector <elem> a[NM];
 
int n,st,end;
bool viz[NM];
int D[NM];
 
void read()
{
    int m;
    int x,y,dr;
    scanf("%d %d %d %d",&n,&m,&st,&end);
 
    while(m--)
        {
            scanf("%d %d %d",&x,&y,&dr);
            a[x].push_back((elem){dr,y});
            a[y].push_back((elem){-dr,x});
        }
}
 
void dfs(int pos)
{
    if(viz[pos]) return;
    viz[pos]=1;
    for(size_t i=0;i<a[pos].size();++i)
        if(!viz[a[pos][i].to])
        {
        viz[a[pos][i].to]=1;
        D[a[pos][i].to] = D[pos]+a[pos][i].d;
        dfs(a[pos][i].to);
        }
}
 
int main()
{
    freopen("sate.in","r",stdin);
    freopen("sate.out","w",stdout);
 
    read();
 
    viz[st]=1;
    dfs(st);
    printf("%d",D[end]);
 
    return 0;
}