Pagini recente » Cod sursa (job #1878338) | Cod sursa (job #1526712) | Istoria paginii runda/oji-9-10-1/clasament | Cod sursa (job #1825997) | Cod sursa (job #1736507)
#include<cstdio>
#include<vector>
#include<queue>
#define MAXN 30010
using namespace std;
vector<pair<int,int> > g[MAXN];
queue<int> Queue;
int answer[MAXN],seen[MAXN];
int main(){
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
int n,m,x,y,i,a,b,c,node;
scanf("%d%d%d%d",&n,&m,&x,&y);
for(i=1;i<=m;i++){
scanf("%d%d%d",&a,&b,&c);
g[a].push_back(make_pair(b,c));
g[b].push_back(make_pair(a,c));
}
Queue.push(x);
seen[x]=1;
while(!Queue.empty()){
node=Queue.front();
Queue.pop();
for(i=0;i<g[node].size();i++)
if(seen[g[node][i].first]==0){
seen[g[node][i].first]=1;
if(g[node][i].first>node)
answer[g[node][i].first]=answer[node]+g[node][i].second;
else
answer[g[node][i].first]=answer[node]-g[node][i].second;
Queue.push(g[node][i].first);
}
}
printf("%d",answer[y]);
return 0;
}