Cod sursa(job #1623045)

Utilizator ris99Istrate Ruxandra ris99 Data 1 martie 2016 16:46:58
Problema Ubuntzei Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#define inf 16830
using namespace std;
ifstream f("ubuntzei.in");
ofstream g("ubuntzei.out");
int c[201][201],d[201],use[201],n,m,k,c1[201];
void citire()
{ int i,j,x,y,cost;
  f>>n>>m;
  f>>k;
  for(i=1;i<=k;i++)
  f>>c1[i];
  for(i=1;i<=n;i++)
  for(j=1;j<=n;j++)
  if(i==j) c[i][j]=0;
  else c[i][j]=inf;
  for(i=1;i<=m;i++)
  {f>>x>>y>>cost;
   c[x][y]=cost;
   c[y][x]=cost;
  }
}
void dijkstra()
{int x,min1,i;
 for(i=1;i<=n;i++) d[i]=inf;
 d[1]=0;
 while(1)
 {min1=inf;
 for(i=1;i<=n;i++)
 if(!use[i]&&d[i]<min1)
 {min1=d[i];
  x=i;
 }
 if(min1==inf) break;
 use[x]=1;
 for(i=1;i<=n;i++)
 if(d[x]+c[x][i]<d[i])
 {d[i]=d[x]+c[x][i];
  //t[i]=x;
 }
}
}

int main()
{ citire();
  dijkstra();


  g<<d[n]<<endl;


    return 0;
}