Pagini recente » Cod sursa (job #68572) | Cod sursa (job #1375602) | Cod sursa (job #762734) | Cod sursa (job #3137026) | Cod sursa (job #1354203)
#include<iostream>
#include<fstream>
#include<vector>
#define NMAX 30001
#include<utility>
#include<algorithm>
#include<queue>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
vector<pair<int,int> >g[NMAX];
vector<bool>viz(NMAX,false);
int n,m,X,Y;
queue<int>Q;
void read()
{
fin>>n>>m>>X>>Y;
int x,y,c;
for(int i=1;i<=m;i++)
{
fin>>x>>y>>c;
g[x].push_back(make_pair(y,c));
g[y].push_back(make_pair(x,-c));
}
fin.close();
}
void bfs(int x)
{
viz[x]=true;
Q.push(x);
int ok=1,d=0;
while(!Q.empty()&&ok)
{
x=Q.front();Q.pop();
for(int i=0;i<g[x].size()&&ok;i++)
{
if(!viz[g[x][i].first])
{
if(g[x][i].first==Y)ok=0;
viz[g[x][i].first]=true;
Q.push(g[x][i].first);
d+=g[x][i].second;
}
}
}
fout<<abs(d);
}
int main()
{
read();
bfs(X);
fout.close();
return 0;
}