Cod sursa(job #1327250)

Utilizator adriaadriana constantin adria Data 26 ianuarie 2015 15:00:20
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
using namespace std;
int a[100][100],viz[100],n,x,y;
int suma=0;

//http://www.infoarena.ro/problema/sate

void citire()
{
    int m;
    ifstream f("sate.in");
    f>>n>>m>>x>>y;
    int xx,yy,val;
    for(int i=1;i<=m;i++)
    {
        f>>xx>>yy>>val;
        a[xx][yy]=val;
        a[yy][xx]=val;
    }
    f.close();
}

void BF(int xp)
{
    int c[100],p,u,i,k;
    p=u=1;
    c[p]=xp;viz[xp]=1;
    while (p<=u)
    {
        k=c[p];
        for(i=1;i<=n;i++)
        {
            if(a[k][i]>0 && viz[i]==0)
            {
                u++;c[u]=i; if(k>i)viz[i]=viz[k]-a[k][i]; else viz[i]=viz[k]+a[k][i];
            }
        }
        p++;
    }
}

int main()
{
    citire();
    BF(x);
    ofstream g("sate.out");
    g<<viz[y]-1;
    g.close();
}