Pagini recente » Cod sursa (job #3176591) | Cod sursa (job #210872) | Cod sursa (job #2743406) | Cod sursa (job #2445765) | Cod sursa (job #355071)
Cod sursa(job #355071)
#include <fstream>
using namespace std;
#define Mmax 250001
#define inf 1<<30
int x[Mmax],y[Mmax],c[Mmax],d[Mmax],n,m;
void read()
{
ifstream f("dijkstra.in");
f>>n>>m;
int i;
for(i=1;i<=m;i++)
{
f>>x[i]>>y[i]>>c[i];
if(x[i]==1)
d[y[i]]=c[i];
}
d[1]=0;
for(i=2;i<=n;i++)
d[i]=inf;
}
void solve()
{
int ok=0;
while(!ok)
{
ok=1;
for(int i=1;i<=m;i++)
if(d[y[i]]>d[x[i]]+c[i])
{
d[y[i]]=d[x[i]]+c[i];
ok=0;
}
}
}
void show()
{
ofstream g("dijkstra.out");
for(int i=2;i<=n;i++)
if(d[i]!=inf)
g<<d[i]<<" ";
else
g<<"0 ";
}
int main()
{
read();
solve();
show();
}