Pagini recente » Cod sursa (job #1995854) | Cod sursa (job #2396714) | Clasament pebarosaneala | Cod sursa (job #2074306) | Cod sursa (job #2207583)
#include <fstream>
#include <vector>
#include <queue>
#define INF 2000000000
using namespace std;
struct muchie{
int nod, cost;
};
int n,m;
int d[50003];
vector<muchie>L[50003];
queue<int>q;
void Citire()
{
int i,x;
muchie w;
ifstream fin("dijkstra.in");
fin>>n>>m;
for(i=1;i<=m;++i)
{
fin>>x>>w.nod>>w.cost;
L[x].push_back(w);
}
fin.close();
}
void Dijkstra()
{
int i,x,y,c;
unsigned int ui;
muchie w;
d[1] = 0;
for(i=2;i<=n;++i)
d[i] = INF;
q.push(1);
while(!q.empty())
{
x = q.front();
q.pop();
for(ui=0;ui<L[x].size();++ui)
{
w = L[x][ui];
y = w.nod;
c = w.cost;
if(d[y] > d[x] + c /* && !viz[y] */)
{
d[y] = d[x] + c;
q.push(y);
}
}
}
}
void Afisare()
{
int i;
ofstream fout("dijkstra.out");
for(i=2;i<=n;++i)
fout<<d[i]<<" ";
fout<<"\n";
fout.close();
}
int main()
{
Citire();
Dijkstra();
Afisare();
return 0;
}