Pagini recente » Istoria paginii runda/simulare.oji.2024.bv_11_12 | Cod sursa (job #737817) | Cod sursa (job #2972479) | Cod sursa (job #1504900) | Cod sursa (job #1304494)
#include <fstream>
#include <vector>
#include <cstring>
#include <cmath>
#define DIM 30002
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
long long n,m,x,y,viz[DIM],C[DIM],D;
vector <long long> v[DIM],d[DIM];
void BFS(int x){
int p,u;
viz[x]=0;
C[1]=x;p=u=1;
while(p<=u && viz[y]==-1){
x=C[p++];
for(int i=0;i<v[x].size();i++){
if(viz[v[x][i]]==-1){
if(x<v[x][i])
viz[v[x][i]]=viz[x]+d[x][i];
else
viz[v[x][i]]=abs(viz[x]-d[x][i]);
C[++u]=v[x][i];
}
}
}
}
int main(){
fin>>n>>m>>x>>y;
while(m--){
int g,f;
fin>>g>>f>>D;
v[g].push_back(f);
v[f].push_back(g);
d[g].push_back(D);
d[f].push_back(D);
}
memset(viz,-1,sizeof(viz));
BFS(x);
fout<<viz[y];
fin.close();fout.close();
return 0;
}