Pagini recente » Cod sursa (job #443451) | Cod sursa (job #814261) | Cod sursa (job #2358748) | Cod sursa (job #451335) | Cod sursa (job #761698)
Cod sursa(job #761698)
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
struct muchie {
int cost,y;
};
vector <muchie> v[30001];
int l[30001],cost[30001],n,c[60001];
inline void bfs(int nod)
{
int i,st,dr;
for(i=1;i<=n;i++)
cost[i]=-1;
st=1;
dr=1;
cost[nod]=0;
c[st]=nod;
while(st<=dr) {
for(i=0;i<=l[c[st]];i++)
if(cost[v[c[st]][i].y]==-1) {
cost[v[c[st]][i].y]=cost[c[st]]+v[c[st]][i].cost;
c[++dr]=v[c[st]][i].y;
}
st++;
}
}
int main ()
{
int m,i,start,sfarsit,x,aux;
muchie d;
ifstream f("sate.in");
ofstream g("sate.out");
f>>n>>m>>start>>sfarsit;
for(i=1;i<=m;i++) {
f>>x>>d.y>>d.cost;
v[x].push_back(d);
aux=x;
x=d.y;
d.y=aux;
d.cost=-d.cost;
v[x].push_back(d);
}
f.close();
for(i=1;i<=n;i++)
l[i]=v[i].size()-1;
bfs(start);
g<<cost[sfarsit];
g.close();
return 0;
}