Pagini recente » Rating Madalina Soare (Madalina93) | Cod sursa (job #1067256) | tema | Cod sursa (job #672375) | Cod sursa (job #896715)
Cod sursa(job #896715)
#include <fstream>
#include <vector>
#include <utility>
#include <map>
struct edge
{
int s,n,w;
};
const int inf = 10000;
int N,M;
using std::vector;
using std::map;
std::ifstream in("dijkstra.in");
std::ofstream out("dijkstra.out");
vector<int> dist,prec;
vector<edge> a;
void read()
{
in >> N >> M;
dist.resize(N+1,inf);
dist[1] = 0;
prec.resize(N+1);
for (int i = 0; i < M; ++i)
{
edge temp;
in >> temp.s >> temp.n >> temp.w;
a.push_back(temp);
}
}
int main()
{
read();
for (int i = 1; i < N; ++i)
for (int j = 0; j < a.size(); ++j)
if ( dist[ a[j].s ] + a[j].w < dist[ a[j].n ] )
{
dist[ a[j].n ] = dist[ a[j].s ] + a[j].w;
prec[ a[j].n ] = a[j].s;
}
for (int i = 2; i < dist.size(); ++i)
out << dist[i] << " ";
in.close();
out.close();
return 0;
}