Cod sursa(job #1438754)

Utilizator Denisa13Stefan Denisa Denisa13 Data 20 mai 2015 19:24:46
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <utility>

using namespace std;

ifstream f("sate.in");
ofstream g("sate.out");

vector <pair <int, int> > G[30005];
bool viz[30005];

void DFS(int x, int y, int& sol, int ok)
{
    viz[x]=1;
    for(int i=0;i<G[x].size();i++)
        if(viz[G[x][i].first]==0 && ok==0)
        {
            sol+=G[x][i].second;
            if(G[x][i].first!=y)
                DFS(G[x][i].first,y,sol,ok);
            else ok=1;
        }
}

int main()
{
    int n,m,i,a,b,c,x,y,sol=0;
    f>>n>>m>>x>>y;
    for(i=1;i<=m;i++)
    {
        f>>a>>b>>c;
        G[a].push_back(make_pair(b,c));
        G[b].push_back(make_pair(a,-c));
    }
    /*for(i=1;i<=n;i++)
    {
        for(int j=0;j<G[i].size();j++)
            cout<<'('<<G[i][j].first<<','<<G[i][j].second<<"), ";
        cout<<endl;
    }*/
    DFS(x,y,sol,0);
    g<<sol;
}