Pagini recente » Cod sursa (job #2592907) | Cod sursa (job #2431027) | Cod sursa (job #254960) | Cod sursa (job #519567) | Cod sursa (job #2499535)
#include<bits/stdc++.h>
# define nmax 50010
# define mmax 250010
# define inf 2000000000
using namespace std;
struct muchie
{
long x,y,c;
} vec[mmax];
long timp[nmax],m,n;
long x,y,i,c,ok;
int main()
{
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>x>>y>>c;
vec[i].x=x;
vec[i].y=y;
vec[i].c=c;
if(x==1)
timp[y]=c;
}
for(i=2;i<=n;i++)
{
if(timp[i]==0)
{
timp[i]=inf;
}
}
while(ok==0)
{
ok=1;
for(i=1;i<=m;i++)
{
if(timp[vec[i].y] > timp[vec[i].x] + vec[i].c)
{
timp[vec[i].y] = timp[vec[i].x] + vec[i].c;
ok=0;
}
}
}
for(i=2;i<=n;i++)
{
if(timp[i]!=inf)
fout<<timp[i]<<" ";
else
fout<<"0 ";
}
}