Pagini recente » Cod sursa (job #306478) | Cod sursa (job #2534203) | Cod sursa (job #2141402) | Cod sursa (job #50452) | Cod sursa (job #670826)
Cod sursa(job #670826)
#include<iostream>
#include<fstream>
#include<vector>
#include<queue>
#define DN 30005
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
struct cod
{
int dest,cost;
}s;
vector<cod> v[DN];
int n,m,x,y,a,b,cost;
int viz[DN];
void bfs(int nr)
{
int i;
queue<int> q;
viz[nr]=1;
q.push(nr);
while(!q.empty())
{
nr=q.front();
q.pop();
for(i=0;i<(int)v[nr].size();++i)
{
if(!viz[v[nr][i].dest])
{
viz[v[nr][i].dest]=viz[nr]+v[nr][i].cost;
q.push(v[nr][i].dest);
}
}
}
}
int main()
{
int aux;
fin>>n>>m>>x>>y;
for( int i=0;i<m;++i)
{
fin>>a>>b>>cost;
if(a>b)
{
aux=a;
a=b;
b=aux;
}
s.cost=cost;
s.dest=b;
v[a].push_back(s);
s.cost=-cost;
s.dest=a;
v[b].push_back(s);
}
bfs(x);
fout<<viz[y]-1;
}