Pagini recente » Rating Colominschi Elena (Elenaaa) | Atasamentele paginii kys | Monitorul de evaluare | Statistici Pascariu Matei (mateipascariu) | Cod sursa (job #431025)
Cod sursa(job #431025)
#include<stdio.h>
#include<vector>
#include<queue>
using namespace std;
#define fs first
#define sc second
typedef pair<int,int> PII;
vector<PII> nr[30010];
int N,M,X,Y,dist[30010],INF=1<<30;
void BF(){
int i,x;
queue<int> Q;
Q.push(X);
for(i=0;i<=N;++i)
dist[i]=INF;
dist[X]=0;
while(!Q.empty()){
x=Q.front();
Q.pop();
for(vector<PII>::iterator it=nr[x].begin();it!=nr[x].end();++it){
if(dist[it->fs]!=INF)
continue;
if(it->fs>x)
dist[it->fs]=dist[x]+it->sc;
else
dist[it->fs]=dist[x]-it->sc;
Q.push(it->fs);
if(it->fs==Y)
return;
}
}
}
int main(){
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
int i,x,y,c;
scanf("%d%d%d%d",&N,&M,&X,&Y);
for(i=0;i<M;++i){
scanf("%d%d%d",&x,&y,&c);
nr[x].push_back(PII(y,c));
nr[y].push_back(PII(x,c));
}
BF();
printf("%d\n",dist[Y]);
fclose(stdin);
fclose(stdout);
return 0;
}