Pagini recente » Cod sursa (job #582154) | Cod sursa (job #1637028) | Cod sursa (job #1732630) | Cod sursa (job #884367) | Cod sursa (job #876231)
Cod sursa(job #876231)
#include <fstream>
#include <vector>
#define INF 1000000000
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
struct cs{
long long nod,cost;
};
vector<cs> G[50001];
cs aux;
bool uz[50001];
long long n,m,i,j,cnt,mn,mni,x,y,c,dist[50001],a;
int main()
{f>>n>>m;
for(i=1;i<=m;i++)
{
f>>x>>y>>c;
aux.nod=x;
aux.cost=c;
G[y].push_back(aux);
aux.nod=y;
G[x].push_back(aux);
}
for(i=2;i<=n;i++)
dist[i]=INF;
dist[1]=0;
cnt=1;
mni=1;
while(cnt<=n)
{mn=INF;
for(i=0;i<G[mni].size();i++)
{if(dist[G[mni][i].nod]>dist[mni]+G[mni][i].cost)
dist[G[mni][i].nod]=dist[mni]+G[mni][i].cost;
if(uz[G[mni][i].nod]==0)
{
if(mn>G[mni][i].cost)
{
mn=G[mni][i].cost;
j=G[mni][i].nod;
}
}
}
cnt++;
uz[mni]=1;
mni=j;
}
for(i=2;i<=n;i++)
g<<dist[i]<<' ';
f.close();
g.close();
return 0;
}