Cod sursa(job #3229356)

Utilizator addanciuAdriana Danciu addanciu Data 15 mai 2024 16:07:53
Problema Asmax Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <vector>
#include <algorithm>
#include <cstring>
#include <unordered_map>
#include <stack>
#include <queue>
#include <cmath>
#include <cstdlib>
#include <set>
#include <chrono>
#include <iomanip>
//#define CONSOLE /// daca ai in consola
using namespace std;

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

#ifdef CONSOLE
    #include <iostream> 
    #define fin cin 
    #define fout cout 
#endif
int val[1001], st[1001], dr[1001], f[1001], dp[1001];
int dfs(int nod) {
    dp[nod] = val[nod];
    if (st[nod] != 0) dp[nod] += dfs(st[nod]); 
    if (dr[nod] != 0) dp[nod] += dfs(dr[nod]);
    return dp[nod];
}
signed main(){
    int n, r;
    fin>>n;
    for(int i=1;i<=n;i++){
        int x,y;
        fin>>val[i]>>st[i]>>dr[i];
        f[st[i]]++;
        f[dr[i]]++;
    }
    for(int i=1;i<=n;i++) if(f[i]==0) r=i;
    dfs(r);
    fout << abs(dp[st[r]] - dp[dr[r]]) << '\n';
    return 0;
}