Pagini recente » Cod sursa (job #2658625) | Cod sursa (job #2507281) | Cod sursa (job #2811334) | Cod sursa (job #211582) | Cod sursa (job #951061)
Cod sursa(job #951061)
#include<fstream>
#define INF 1<<31;
using namespace std;
int n,m,vis[50000],dist[50000], con[50000][50000];
int main()
{
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
f>>n>>m;
for(int i=0;i<m;i++)
f>>x>>y>>c, con[x][y]=c;
for(int i=0;i<n;i++)
{
dist[i] = INF;
vis[i] = 0;
}
d[0] = 0;
int nn=0;
while(nn<=n)
{
int min = INF, minI;
for(int j=0;j<n;j++)
{
if(dist[j]<min && !vis[j])
{
min = dist[j];
minI = j;
}
}
vis[minI] = 1;
for(int i=0;i<n;i++)
if(dist[minI] + con[minI][i] < dist[i])
dist[i] = dist[minI] + con[minI][i];
nn++;
}
for(int i=1;i<n;i++)
g<<dist[i]<<" ";
f.close();
g.close();
}