Cod sursa(job #671937)

Utilizator dtoniucDaniel Toniuc dtoniuc Data 1 februarie 2012 09:36:55
Problema Ubuntzei Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>
using namespace std;
ofstream fout("ubuntzei.out");
int v[16],a[2001][2001],n,m,k,d[2001],coada[2001],viz[2001];
void citire()
{
	freopen ("ubuntzei.in","r",stdin);
	scanf("%d%d%d", &n,&m,&k);
	for(int i=1;i<=k;i++)
		scanf("%d",&v[i]);
	for(int i=1;i<=m;i++)
	{
		int x,y,s;
		scanf("%d%d%d",&x,&y,&s);
		a[x][y]=a[y][x]=s;
	}
	
}
int dijktra(int x,int y)
{
	coada[1]=x;
	viz[x]=1;
	int dr=1,s=1;
	do{
		for(int i=1;i<=n;i++)
			if(a[coada[s]][i]!=0 && d[i]==0 && viz[i]==0)
			{
				viz[i]=1;
				d[i]=d[coada[s]]+a[coada[s]][i];
				coada[++dr]=i;
			}
			else if(a[coada[s]][i]!=0 && d[coada[s]]+a[coada[s]][i]<d[i])
				d[i]=d[coada[s]]+a[coada[s]][i];
		s+=1;
	}while(s<=dr);
	return d[y];
}
int main()
{
	citire();
	fout<<dijktra(1,n);
	return 0;
}