Cod sursa(job #1808963)

Utilizator alexionpopescuPopescu Ion Alexandru alexionpopescu Data 18 noiembrie 2016 15:03:12
Problema Sate Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
int a[301][301],l[301],c[301],n,m,x,y;
bool v[301];
void cit(){
    int i,j,h,d;
    fin>>n>>m>>x>>y;
    for(h=1;h<=m;h++){
        fin>>i>>j>>d;
        a[i][j]=a[j][i]=d;
    }
    fin.close();
}
void bfs(int x){
    int i,p,q,u;
    c[1]=x;
    v[x]=true;
    p=u=1;
    while(p<=u){
        q=c[p];p++;
        for(i=1;i<=n;i++)
            if(a[q][i]!=0&&v[i]==false){
                u++;c[u]=i;v[i]=true;
                if(q<i)
                    l[i]=l[q]+a[q][i];
                if(q>i)
                    l[i]=l[q]-a[q][i];
            }
    }
}
int main(){
    cit();
    bfs(x);
    fout<<l[y];
    fout.close();
    return 0;
}