Cod sursa(job #7003)

Utilizator megabyteBarsan Paul megabyte Data 21 ianuarie 2007 11:39:02
Problema Radiatie Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 1, Clasele 11-12 Marime 0.74 kb
#include <stdio.h>
#define INF "radiatie.in"
#define OUF "radiatie.out"
#define NMAX 2024
int cost[NMAX][NMAX]={0};
int main()
{
	int n,m,p,i,j,k,x,y,cos;
	FILE *in,*out;
	in=fopen(INF,"r");
	out=fopen(OUF,"w");
	fscanf(in,"%d %d %d",&n,&m,&p);
	for(i=1;i<=m;i++)
	{
		fscanf(in,"%d %d %d",&x,&y,&cos);
		cost[x][y]=cost[y][x]=cos;
	}
	for(k=1;k<=n;k++)
	  for(i=1;i<=n;i++)
		  for(j=1;j<=n;j++)
			  if(cost[i][k]&&cost[k][j])
			  {
				  
				  if(cost[i][k]>cost[k][j]) cos=cost[i][k];
				  else cos=cost[k][j];
				  if(!cost[i][j]) cost[i][j]=cost[j][i]=cos;
				  else if(cos<cost[i][j]) cost[i][j]=cost[j][i]=cos;
			  }
	for(i=1;i<=p;i++)
	{
		fscanf(in,"%d %d",&x,&y);
		fprintf(out,"%d\n",cost[x][y]);
	}
	fclose(in);fclose(out);
	return 0;
}