Cod sursa(job #1701951)

Utilizator ASTELOTudor Enescu ASTELO Data 14 mai 2016 13:15:18
Problema Sate Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<cstdio>
#include<vector>
using namespace std;
vector<int> v[100001],vec[100001];
int x,y,pp,vc[100001],i,j,n,m,k,l,in=1,sf=1,coada[100001];
void bfs(int nod)
	{
	if(pp==0)
		{
        if(vc[y]!=0||nod==y)
			pp=1;
        for(int i=0;i<v[nod].size();i++)
			if(vc[v[nod][i]]==0)
				{
				coada[++sf]=v[nod][i];
                vc[v[nod][i]]=vc[nod]+vec[nod][i];
				}
		in++;
		if(in<=sf)
			bfs(coada[in]);
		}
	}
int main ()
{
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
scanf("%d%d%d%d",&n,&m,&x,&y);
for(i=1;i<=m;i++)
	{
	int q,qq,qqq;
    scanf("%d%d%d",&q,&qq,&qqq);
    v[q].push_back(qq);
    v[qq].push_back(q);
    vec[q].push_back(qqq);
    vec[qq].push_back(-qqq);
	}
coada[1]=x;
bfs(x);
printf("%d",vc[y]);
return 0;
}