Cod sursa(job #561979)

Utilizator mjhonMisa Jhon mjhon Data 22 martie 2011 05:05:17
Problema Sate Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<iostream>
#include<fstream>
#include<stdio.h>
#include <queue>

using namespace std;
int n,viz[10000],m,x,y,a[10000][10000];
queue<int> c;
long d[10000];
int parcurg(int i)
{
	viz[i]=1; int ok;
	int j,u,p;
	c.push(i);//c[p]=i;
	ok=0;
	while((c.size()) &&(!ok))
	{
		p=c.front();
		for(j=1;j<=n;j++)
			if((a[p][j]!=0)&&(viz[j]==0))
			{

				c.push(j);// c[u]=j;
				viz[j]=1;
				if(p<j)
					d[j]=d[p]+a[p][j];
				else
					d[j]=d[p]-a[p][j];
				if (j==y)
				 ok=1;
			}
		c.pop();
        }
}

int main()
{
	ifstream f("sate.in");
	f>>n>>m;
	f>>x>>y;
	int i,i1,j1,c;
	for(i=1;i<=m;i++)
	{
		f>>i1>>j1>>c;
		a[i1][j1]=c;
		a[j1][i1]=c;
	}
	parcurg(x);
	ofstream g("sate.out");
	g<<d[y];
	return 0;
}