Pagini recente » Cod sursa (job #1133349) | Cod sursa (job #2465068) | Cod sursa (job #1647547) | Cod sursa (job #2670166) | Cod sursa (job #494678)
Cod sursa(job #494678)
#include<fstream>
#include<vector>
#define MAX 30001
using namespace std;
int n,m,x,y,viz[MAX],km[MAX];
struct nod
{
int vec,cost;
};
vector<nod> a[MAX];
int bfs()
{
int prim=1,ultim=1,coada[4*MAX],i,ind;
coada[prim] = x;
viz[x] = 1;
while(prim <= ultim)
{
ind = coada[prim];
for(i=0;i<a[ind].size();++i)
{
if(!viz[a[ind][i].vec])
{
viz[a[ind][i].vec] = 1;
++ultim;
coada[ultim] = a[ind][i].vec;
km[coada[ultim]] = km[ind] + a[ind][i].cost;
}
}
++prim;
}
return km[y];
}
int main()
{
ifstream f("sate.in");
f>>n>>m>>x>>y;
int i,j,d,k;
nod aux;
for(k=1;k<=n;++k)
{
f>>i>>j>>d;
aux.vec = j;
aux.cost = d;
a[i].push_back(aux);
aux.vec = i;
aux.cost = -d;
a[j].push_back(aux);
}
f.close();
if(x>y)
{
i = x;x = y;y = i;
}
ofstream g("sate.out");
g<<bfs();
g.close();
return 0;
}