Cod sursa(job #1701952)

Utilizator ipus1Stefan Enescu ipus1 Data 14 mai 2016 13:15:48
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<cstdio>
#include<vector>
using namespace std;
vector<pair<int,int> > v[30001];
int vv[30001],vec[30001];
int main ()
{freopen ("sate.in","r",stdin);
freopen ("sate.out","w",stdout);
int n,m,i,x,y,in,sf,k,p,q;
scanf("%d%d%d%d",&n,&m,&x,&y);
for(i=1;i<=m;i++)
    {scanf("%d%d%d",&p,&q,&k);
    v[p].push_back(make_pair(q,k));
    v[q].push_back(make_pair(p,-k));
    }
in=sf=1;
vv[sf]=x;
while(in<=sf)
    {for(i=0;i<v[vv[in]].size();i++)
        if(vec[v[vv[in]][i].first]==0)
            {vec[v[vv[in]][i].first]=vec[vv[in]]+v[vv[in]][i].second;
            sf++;
            vv[sf]=v[vv[in]][i].first;
            }
    in++;
    }
printf("%d",vec[y]);
return 0;
}