Cod sursa(job #797040)

Utilizator dragangabrielDragan Andrei Gabriel dragangabriel Data 13 octombrie 2012 11:05:48
Problema Sate Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<cstdio>
#include<vector>
#include<deque>
#include<algorithm>
using namespace std;

int viz[30004],n,i,j,k,x,y,a,b,m,q;

deque<int>c;
vector<pair<int,int> > v[30005];

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++)
		scanf("%d %d %d",&a,&b,&k),v[a].push_back(make_pair(b,k)),v[b].push_back(make_pair(a,-k));
	c.push_back(x);
	while(!c.empty())
	{
		int t=c.front();
		for (i=0;i<v[t].size();i++)
			if  (viz[v[t][i].first]==0) 
			{
				
				c.push_back(v[t][i].first);
				viz[v[t][i].first]=viz[t]+v[t][i].second;
			}
			if(viz[y]!=0) break;
			c.pop_front();
			
	}
	printf("%d\n",viz[y]);
	return 0;
}