Cod sursa(job #2216109)

Utilizator Moise_AndreiMoise Andrei Moise_Andrei Data 25 iunie 2018 12:31:57
Problema Sate Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("sate.in");
ofstream out("sate.out");
vector < pair <int, int> > v[30005];
int c[30005];
bool verif[30005];
void f(int &nr)
{
    verif[nr] = 1;
    for(auto it : v[nr])
    {
        if(verif[it.first] == 0 && c[it.first] == 0)
        {
            c[it.first] = c[nr] + it.second;
            f(it.first);
        }
    }
    verif[nr] = 0;
}
int main()
{
    int n, m, a, b;
    in >> n >> m >> a >> b;
    while(m--)
    {
        int x, y, z;
        in >> x >> y >> z;
        int mn = min(x, y);
        int mx = max(x, y);
        v[mn].push_back(make_pair(mx, z));
        v[mx].push_back(make_pair(mn,-z));
    }
    f(a);
    out << c[b];
    return 0;
}