Pagini recente » Cod sursa (job #1279558) | Cod sursa (job #233798) | Cod sursa (job #201685) | Cod sursa (job #235500) | Cod sursa (job #2347780)
#include <fstream>
#include <deque>
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int n,m;
struct pct
{
deque<int> vec,cost;
};
int main()
{
f>>n>>m;
int i,j;
pct v[n+2];
int val[n+2];
for(i=1;i<=n+2;i++)
val[i]=20002;
for(i=1;i<=m;i++)
{
int a,b,c;
f>>a>>b>>c;
v[a].vec.push_back(b);
v[a].cost.push_back(c);
v[b].vec.push_back(a);
v[b].cost.push_back(c);
}
deque<int> x;
x.push_back(1);
val[1]=0;
while(!x.empty())
{
int aux=x.front();
x.pop_front();
for(i=0;i<v[aux].vec.size();i++)
{
if(val[aux]+v[aux].cost[i]<val[v[aux].vec[i]])
{
val[v[aux].vec[i]]=val[aux]+v[aux].cost[i];
x.push_back(v[aux].vec[i]);
}
}
}
for(i=2;i<=n;i++)
g<<val[i]<<" ";
return 0;
}