Cod sursa(job #1388976)

Utilizator alexblackFMI - Dumitrache Alexandru alexblack Data 15 martie 2015 20:59:31
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#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;
}