Pagini recente » Cod sursa (job #1861088) | Cod sursa (job #1408241) | Cod sursa (job #871412) | Cod sursa (job #1046825) | Cod sursa (job #581165)
Cod sursa(job #581165)
#include<stdio.h>
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 i=1;i<=N;i++)
for(int j=1;j<=N;j++)
for(int k=1;k<=N;k++)
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;
}