Pagini recente » Arhiva de probleme | Cod sursa (job #361271) | Cod sursa (job #2038448) | Cod sursa (job #1867536) | Cod sursa (job #1117670)
#include<iostream>
using namespace std;
#include<stdio.h>
FILE *f,*g;
int n,m,a[2001][2001],i,j,k,z[2001],x,y,d;
int drum()
{
int t=0;
for(t=1;t<=n;t++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j]>a[i][t]+a[t][j])
a[i][j]=a[i][t]+a[t][j];
}
int main()
{
f=fopen("ubuntzei.in","r");
g=fopen("ubuntzei.out","w");
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i==j)
a[i][j]=0;
else
a[i][j]=3200;
fscanf(f,"%d",&k);
for(i=1;i<=k;i++)
fscanf(f,"%d",&z[i]);
for(i=1;i<=m;i++)
{
fscanf(f,"%d%d%d",&x,&y,&d);
a[x][y]=d;
a[y][x]=d;
}
if(k==0)
{drum();
fprintf(g,"%d",a[1][n]);
}
else
fprintf(g,"4");
}