Cod sursa(job #197666)

Utilizator ada_sAda-Mihaela Solcan ada_s Data 5 iulie 2008 13:43:22
Problema Reconst Scor 0
Compilator cpp Status done
Runda Junior Challenge 2008 Marime 0.9 kb
#include <fstream>
std::ifstream f1("reconst.in");
std::ofstream f2("reconst.out");
void rez();

long s[2020][2020];
int n;

int main()
{
  int m,i, j, a, b;
	f1>>n>>m;
	for (i=1; i<=n; i++)
		for (j=1; j<=n; j++)
			s[i][j]=4000000;
	for (i=0; i<m; i++)
	{
		f1>>a;
		f1>>b;
		f1>>s[a][b];
	}//for i
  rez();
	rez();
	for (i=1; i<=n; i++)
	{
		if (s[i][i]==4000000)
		{
			s[i][i]=0;
			rez();
		}//if
		f2<<s[i][i];
		if (i<n)
			f2<<" ";
	}//for i
	f1.close();
	f2.close();
}//main

void rez()
{
	int i, j, k;
	for (i=1; i<=n; i++)
		for (j=1; j<=n; j++)
			if (s[i][j]!=4000000)
  		{
			  for (k=j+2; k<=n; k++)
					if (s[j+1][k]!=4000000)
					  s[i][k]=s[i][j]+s[j+1][k];
        for (k=j+1; k<=n; k++)  
          if (s[i][k]!=4000000)  
            s[j+1][k]=s[i][k]-s[i][j];  
        for (k=i+1; k<=n; k++)  
          if (s[k][j]!=4000000)  
            s[i][k-1]=s[i][j]-s[k][j]; 			
 		  }//if		
}//rez