Cod sursa(job #1649470)

Utilizator AdrianVrAdrian Stefan Vramulet AdrianVr Data 11 martie 2016 13:48:18
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <bits/stdc++.h>
#define Nmax 30010
#define Mmax 100100
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
long long s;
bool viz[Nmax];
struct muchie
{
    int y;
    long long c;
};
vector <muchie> M[Nmax];
int n,m,x,xf,yf;
void DFS(int R)
{viz[R]=1;
    if(R==yf)
        return;
    for(int i=0; i<M[R].size(); i++)
       if(M[R][i].y<R&&viz[M[R][i].y]==0)
        {
            s-=M[R][i].c;
            DFS(M[R][i].y);
        }
        else
            if(M[R][i].y>R&&viz[M[R][i].y]==0)
        {
            s+=M[R][i].c;
            DFS(M[R][i].y);
        }
}
int main()
{int l;
    f>>n>>m>>xf>>yf;
    muchie aux;
    for(int i=1; i<=m; i++)
    {
        f>>x>>aux.y>>aux.c;
        M[x].push_back(aux);
        l=aux.y;
        aux.y=x;
        M[l].push_back(aux);
    }
    DFS(xf);
    g<<s;
    return 0;
}