Pagini recente » Cod sursa (job #267128) | Cod sursa (job #1763453) | Cod sursa (job #3244094) | Cod sursa (job #2821530) | Cod sursa (job #494675)
Cod sursa(job #494675)
#include<fstream>
#include<vector>
#define MAX 30001
using namespace std;
int n,m,x,y,viz[MAX];
struct nod
{
int vec,cost;
};
vector<nod> a[MAX];
int bfs()
{
int prim=1,ultim=2,coada[2][4*MAX],i,ind;
coada[0][prim] = x;
while(prim != ultim)
{
ind = coada[0][prim];
viz[ind] = 1;
for(i=0;i<a[ind].size();++i)
{
if(!viz[a[ind][i].vec])
{
coada[0][ultim] = a[ind][i].vec;
coada[1][ultim] = coada[1][prim] + a[ind][i].cost;
if(coada[0][ultim] == y)
return coada[1][ultim];
++ultim;
}
}
++prim;
}
return 0;
}
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;
}