Pagini recente » Cod sursa (job #1653488) | Cod sursa (job #877350) | Cod sursa (job #74149) | Cod sursa (job #2157245) | Cod sursa (job #581174)
Cod sursa(job #581174)
#include<stdio.h>
#include<vector>
#define INF 10000
int A[2001][2001];
int N;
int M;
int K;
short int Oras[2001];
void initializare(void)
{
for(int i=1;i<=N;i++)
for(int j=1;j<=N;j++)
A[i][j] = INF;
}
void citire(void)
{
int a;
int b;
int c;
FILE *f = fopen("ubuntzei.in","r");
fscanf(f,"%d %d",&N,&M);
initializare();
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(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;
}