Cod sursa(job #3374430)

Utilizator cristian___Nastase Cristian-Florin cristian___ Data 9 noiembrie 2026 00:27:03
Problema Sate Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <vector>
#include <fstream>

using namespace std;

void dfs(int nod, vector<vector<pair<int, int>>>& lista, vector<int>& visited, int& suma, int& y) {
    visited[nod] = 1;

    for (auto vecin : lista[nod]) {
        int nodVecin = vecin.first;
        int dist = vecin.second;

        if (!visited[nodVecin]) {
            if (nodVecin > nod) {
                suma += dist;
            }
            else {
                suma -= dist;
            }

            dfs(nodVecin, lista, visited, suma, y);
        }
    }
}

int main() {
    vector<vector<pair<int, int>>> lista;
    vector<int> visited;

    int n, m, x, y, i, j, suma;

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

    in>>n>>m>>x>>y;

    lista.resize(n+1);
    visited.resize(n+1);
    int d;

    while (in>>i>>j>>d) {
        lista[i].push_back({j, d});
        lista[j].push_back({i, d});
    }

    in.close();

    suma = 0;
    dfs(x, lista, visited, suma, y);

    out<<suma;
    out.close();

    return 0;
}