Pagini recente » Cod sursa (job #2539844) | Statistici Serban Alexandru Florian (SerbanAlexandruFlorian323CB) | Cod sursa (job #2625151) | Cod sursa (job #1879865) | Cod sursa (job #1388976)
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
ifstream in ("sate.in");
ofstream out("sate.out");
int const N=100;
int n,m,x,y;
int mat[N][N];
bool viz[N];
queue<int> q;
void bfs()
{
int c=q.front();
q.pop();
viz[c]=true;
for(int i=1;i<=n;i++)
if((!viz[i])&&(mat[c][i]!=0))
{
q.push(i);
if(i>c)
mat[1][i]=mat[1][c]+mat[c][i];
else
mat[1][i]=mat[1][c]-mat[c][i];
}
}
int mod(int x)
{
if(x>0) return x;
return -x;
}
int main()
{
in>>n>>m>>x>>y;
for(int i=1;i<=m;i++)
{
int a,b,d;
in>>a>>b>>d;
mat[a][b]=mat[b][a]=d;
}
q.push(1);
bfs();
while(!q.empty())
bfs();
out<<mod(mat[1][x]-mat[1][y])<<"\n";
return 0;
}