Cod sursa(job #797045)

Utilizator dragangabrielDragan Andrei Gabriel dragangabriel Data 13 octombrie 2012 11:09:49
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 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())
	{
			if(viz[y]!=0) break;
			for (i=0;i<v[c.front()].size();i++)
			if  (viz[v[c.front()][i].first]==0) 
			{
				
				c.push_back(v[c.front()][i].first);
				viz[v[c.front()][i].first]=viz[c.front()]+v[c.front()][i].second;
			}
			c.pop_front();
	}
	printf("%d\n",viz[y]);
	return 0;
}