Cod sursa(job #2258402)

Utilizator vulpixbSilvasan Bogdan vulpixb Data 11 octombrie 2018 12:46:11
Problema Sate Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <vector>
#define NMAX 30001

using namespace std;

ifstream fin("sate.in");
ofstream fout("sate.out");

vector < pair<int, int> > G[NMAX];

int n, m, x, y, i, a, b, cost, dist[NMAX];

void dfs(int nod)
{
    int nrvecini = G[nod].size();
    for (int i=0; i<nrvecini; i++)
    {
        int vecin = G[nod][i].first;
        if (dist[vecin] == 0)
        {
            if (G[nod][i].first > nod)
                dist[vecin] = dist[nod] + G[nod][i].second;
            else
                dist[vecin] = dist[nod] - G[nod][i].second;

            dfs(vecin);
        }
    }
}

int main()
{
    fin >> n >> m >> x >> y;

    for (i=1; i<=m; i++)
    {
        fin >> a >> b >> cost;

        G[a].push_back({b, cost});
        G[b].push_back({a, cost});
    }

    dfs(x);

    fout << dist[y];

    return 0;
}