Cod sursa(job #1692076)

Utilizator Nevermore10Macovei Cosmin Nevermore10 Data 20 aprilie 2016 00:41:54
Problema Sate Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
int n,m,x,y,graf[3000][3000];
bool vizitat[30000] = {false};
int solutie[30000] = {0};
void read() {
    f >> n >> m >> x >> y;
    int a,b,c;
    for(int i = 1; i <= m; i++) {
        f >> a >> b >> c;
        graf[a][b] = c;
        graf[b][a] = c;
    }
}
int c[30000],u;

void BF(int x)
{
    int i,p,v,ii=1,jj=1;
    c[1]=x;
    vizitat[x]=true;
    p=u=1;
    while(p<=u)
    {
        v=c[p];
        p++;
        jj=1;
        for(i=1;i<=n;i++)
            if(graf[v][i] != 0 && vizitat[i]==false)
            {
                u++;
                c[u]=i;
                vizitat[i]=true;
                if(v < i) {
                    solutie[i] = solutie[v] + graf[v][i];
                }
                if(v > i) {
                    solutie[i] = solutie[v] - graf[v][i];
                }
            }
    }
}



int main(int argc, char const *argv[]) {
    read();
    BF(x);
    g << solutie[y];
    return 0;
}