Pagini recente » Cod sursa (job #2956858) | Cod sursa (job #1805989) | Cod sursa (job #1960936) | Cod sursa (job #1897900) | Cod sursa (job #771329)
Cod sursa(job #771329)
#include<fstream>
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int n,m,poz;
int a[250001][3];
long c[50001];
int sel[50001];
long minim;
int i,j,k,nr;
int main()
{f>>n>>m;
for(i=1; i<=m; i++)
f>>a[i][0]>>a[i][1]>>a[i][2];
c[1]=0;
for(i=2; i<=n; i++)
c[i]=10000000;
nr=n;
while(nr)
{minim=10000000;
for(i=1; i<=n; i++)
if(minim>c[i] && sel[i]==0)
{poz=i;
minim=c[i];}
sel[poz]=1;
nr--;
for(i=1; i<=m; i++)
if(a[i][0]==poz && sel[a[i][1]]==0 && c[a[i][1]]>minim+a[i][2])
c[a[i][1]]=minim+a[i][2];
}
minim=10000000;
for(i=2; i<=n; i++)
if(c[i]==minim)
g<<"0 ";
else
g<<c[i]<<" ";
f.close();
g.close();
return 0;}