Cod sursa(job #67664)

Utilizator BloodRainBurceanu Gabriel BloodRain Data 25 iunie 2007 13:10:27
Problema Sate Scor 45
Compilator cpp Status done
Runda preONI 2007, Runda Finala, Clasa a 9-a si gimnaziu Marime 0.82 kb
#include <fstream.h>
#include <math.h>
int a[302][302];
int main()
{
int n,i,j,k,x,y,tz,sh;
long d,m;
ifstream in("sate.in");
in>>n>>m>>x>>y;
for(i=1;i<=m;i++)
	{	
	in>>tz>>sh>>d;
	a[tz][sh]=a[sh][tz]=d;
	}
in.close();

ofstream out("sate.out");

if(a[x][y]!=0) {out<<a[x][y]<<'\n';out.close();return 0;}

for(k=1;k<=n;k++)
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			{
			if(a[i][j]!=0&&a[i][k]!=0&&a[j][k]==0)
				{
					if(i<j&&i<k)
						a[j][k]=a[k][j]=abs(a[i][k]-a[i][j]);
					else if(j<i&&j<k)
						{
						if(i<k)
							a[j][k]=a[k][j]=a[i][j]+a[i][k];
						else 
							a[j][k]=a[k][j]=a[i][j]-a[i][k];
						}						
					else 
						{
						if(i<j)
							a[j][k]=a[k][j]=a[i][j]+a[i][k]; 
						else 
							a[j][k]=a[k][j]=a[k][i]-a[j][i];							
						}
				}
			}
out<<a[x][y]<<'\n';
out.close();
return 0;
}