Cod sursa(job #581168)

Utilizator maritimCristian Lambru maritim Data 13 aprilie 2011 20:40:59
Problema Ubuntzei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
#include<vector>

#define INF 1000000

int A[2001][2001];
int N;
int M;
int K;
short int Oras[2001];

void citire(void)
{
	int a;
	int b;
	int c;
	FILE *f = fopen("ubuntzei.in","r");
	
	fscanf(f,"%d %d",&N,&M);
	fscanf(f,"%d ",&K);
	for(int i=1;i<=K;i++)
	{
		fscanf(f,"%d ",&a);
		Oras[a] = 1;
	}
	for(int i=1;i<=M;i++)
	{
		fscanf(f,"%d %d %d",&a,&b,&c);
		A[a][b] = c;
		A[b][a] = c;
	}
	
	fclose(f);
}

void royfloyd(void)
{
	for(int k=1;k<=N;k++)
		for(int i=1;i<=N;i++)
			for(int j=1;j<=N;j++)
				if((i!=j) && (!A[i][j] || A[i][j]>A[i][k]+A[k][j]))
					A[i][j] = A[i][k] + A[k][j];
}

int main()
{
	FILE *f = fopen("ubuntzei.out","w");
	
	citire();
	royfloyd();
	fprintf(f,"%d",A[1][N]);
	
	fclose(f);
	return 0;
}