Cod sursa(job #2149112)

Utilizator cosceexcosceex cosceex Data 2 martie 2018 12:24:35
Problema Ubuntzei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.43 kb
#include <bits/stdc++.h>
#define oo 100005
using namespace std;

ifstream f("ubuntzei.in");
ofstream g("ubuntzei.out");

int n,m,k;
int x,y,z,v[20];
int a[2001][2001];
int d[20001],t[20001],p[20001];

void dijkstra(int s)
{ int i,j,k,min;
  for(i=1;i<=n;i++)
     { d[i]=a[s][i];
       if(i!=s && d[i]!=oo) t[i]=s;
     }
  p[s]=1;
  for(k=1;k<n;k++)
   { min=oo;
     for(i=1;i<=n;i++)
       if(!p[i] && d[i]<min) { min=d[i]; j=i;
			     }
     for(i=1;i<=n;i++)
       if(!p[i])
       if(d[i]>d[j]+a[j][i])
	 { d[i]=d[j]+a[j][i];
	   t[i]=j;
	 }
     p[j]=1;
   }
}

void drum(int i)
{ if(t[i]) drum(t[i]);
  g<<i<<" ";
}

int main()
{
    f>>n>>m;
    f>>k;
    for(int i=1;i<=k;i++)
        f>>v[i];
    //for(int i=1;i<=n;i++)
        //for(int j=1;j<=n;j++)
       //    d[j]=oo;
        for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            a[i][j]=oo;
    for(int i=1;i<=m;i++)
    {
        f>>x>>y>>z;
        a[x][y]=a[y][z]=z;
    }
     for(int h=1; h<=n; h++)
            for(int i=1; i<=n; i++)
                for(int j=1; j<=n; j++)
                    if(a[i][h]*a[h][j]<oo&&a[i][j]==oo&&h!=i&&h!=j&&i!=j)
                        a[j][i]=a[i][j]=a[i][h]+a[h][j];
        /*for(int i=1; i<=n; i++)
        {
            for(int j=1; j<=n; j++)
                g<<a[i][j]<<" ";
                g<<'\n';
        }*/

    if(k==0)
        g<<a[n][n];
    return 0;
}