Pagini recente » Cod sursa (job #1040524) | Cod sursa (job #2719707) | Cod sursa (job #1503853) | Cod sursa (job #132800) | Cod sursa (job #2076534)
#include <fstream>
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
struct qq
{
int d,t;
bool v;
};
qq x[50001];
int a[10001][10001],n,st,m;
int main()
{
f>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
a[i][j]=20002;
int q,y;
for(int i=1;i<=m;i++)
f>>q>>y,f>>a[q][y];
st=1;
x[st].v=true;
for(int i=1;i<=n;i++)
x[i].d=a[st][i];
x[st].t=0;
for(int i=1;i<=n;i++)
{
int mini=20002,poz=-1;
for(int j=1;j<=n;j++)
if(!x[j].v and x[j].d<mini)
mini=x[j].d,poz=j;
x[poz].v=true;
for(int j=1;j<=n;j++)
if(!x[j].v and a[poz][j]+x[poz].d<x[j].d)
x[j].d=a[poz][j]+x[poz].d,x[j].t=poz;
}
for(int i=2;i<=n;i++)
{
g<<x[i].d<<' ';
}
return 0;
}