Pagini recente » Cod sursa (job #1577552) | Cod sursa (job #214557) | Cod sursa (job #2659155) | Cod sursa (job #2374407) | Cod sursa (job #847167)
Cod sursa(job #847167)
#include<fstream>
#include<vector>
#include<queue>
#include<algorithm>
#include<iostream>
using namespace std;
#define BM 30005
#define x first
#define y second
typedef pair<int,int> per;
typedef vector<per>::iterator it;
vector<per>gr[BM];
queue <int>c;
int n,m,X,Y,aj[BM];
int bfs(){
c.push(X);
aj[X]=1;
int fr;
for(;!c.empty();c.pop()){
fr=c.front();
for(it i=gr[fr].begin();i!=gr[fr].end();++i){
if(aj[i->x]==0){
aj[i->x]=aj[fr]+i->y;
if(i->x==Y){
return aj[i->x];
}
c.push(i->x);
}
}
}
}
int main (){
int i,a,b,d;
ifstream f("sate.in");
ofstream g("sate.out");
f>>n>>m>>X>>Y;
for(i=1;i<=m;++i){
f>>a>>b>>d;
gr[a].push_back(make_pair(b,d));
gr[b].push_back(make_pair(a,-d));
}
g<<(bfs()-1);
return 0;
}