Cod sursa(job #3219152)

Utilizator YuzukyIstrate Andreea Ruxandra Yuzuky Data 30 martie 2024 11:36:45
Problema Asmax Scor 0
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I, Semestrul 2 Marime 0.97 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream in("asmax.in");
ofstream out("asmax.out");
vector<vector<int>> graf;
vector<int> vis;
long long s;
void dfs(int nod)
{
    cout<<nod<<" ";
    vis[nod]=true;
    for(int vec:graf[nod])
        if(!vis[vec])
        {
            dfs(vec);
            if(vis[vec]>0)
                s=s+vis[vec];
        }
}
const int MAX = 16000;
int elem[MAX+1];
int main()
{
    int n;
    in>>n;
    vis.resize(n+1);
    graf.resize(n+1);
    for(int i=1; i<=n; ++i)
        in>>elem[i];
    for(int i=0; i<n-1; ++i)
    {
        int poz1, poz2, node1, node2;
        in>>poz1>>poz2;
//        if(i==0)
//            x=poz1;
//        node1=elem[poz1];
//        node2=elem[poz2];
        //cout<<"elem sunt "<<node1<<" "<<node2<<'\n';
        graf[poz1].push_back(poz2);
        graf[poz2].push_back(poz1);
    }
    dfs(1);
    out<<s;
    return 0;
}