Cod sursa(job #1169732)

Utilizator OlaruSabinOlaru Sabin OlaruSabin Data 11 aprilie 2014 22:39:31
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<cstdio>
#include<vector>
using namespace std;
vector<int>v[50005];
vector<short int>cost[250001];
int rasp[50005],i,k,n,m,nod1,nod2;
short int costmuchie;
int main()
{
	freopen("dijkstra.in","r",stdin);
	freopen("dijkstra.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(i=1;i<=m;i++)
	{
		scanf("%d%d%hd",&nod1,&nod2,&costmuchie);
		v[nod1].push_back(nod2);
		v[nod2].push_back(nod1);
		cost[nod1].push_back(costmuchie);
		cost[nod2].push_back(costmuchie);
		rasp[i]=n+10;
	}
	rasp[1]=0;
	for(i=1;i<=n;i++)
	{
		for(k=0;k<=v[i].size()-1;k++)
		{
			if(rasp[i]+cost[i][k]<rasp[v[i][k]])
				rasp[v[i][k]]=rasp[i]+cost[i][k];
		}
	}
	for(i=2;i<=n;i++)
		printf("%d ",rasp[i]);
}