Cod sursa(job #2836964)

Utilizator LukyenDracea Lucian Lukyen Data 21 ianuarie 2022 12:15:09
Problema Cerere Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <bits/stdc++.h>

using namespace std;
const int l_vec = 100001;

// ifstream fin("cod.in");
// ofstream fout("cod.out");
ifstream fin("cerere.in");
ofstream fout("cerere.out");

int gradm[l_vec];
int nr_noduri;
vector<vector<int>> graf;
vector<pair<int, int>> sol;
int visited[l_vec];
int dist[30];

void dfs(int nod, int d);

int main()
{
    fin >> nr_noduri;
    graf.resize(nr_noduri + 1);
    for (int i = 1; i <= nr_noduri; i++)
        fin >> gradm[i];

    int p1, p2;
    while (fin >> p1 && fin >> p2)
        graf[p2].push_back(p1), graf[p1].push_back(p2);

    dfs(1, 1);

    sort(sol.begin(), sol.end());
    for (auto x : sol)
        fout << x.second << " ";

    return 0;
}

void dfs(int nod, int d)
{
    // visited[nod] = 1;
    // dist[d] = nod;
    // for (auto next : graf[nod])
    // {
    //     if (visited[next])
    //         continue;

    //     dfs(next, d + 1);
    // }
    int nrm = 0;
    // int up = nod;
    // int dif = d;
    // while (gradm[up] != 0)
    // {
    //     nrm++;
    //     dif -= gradm[nod];
    //     up = dist[dif];
    // }
    sol.push_back(make_pair(nod, nrm));
}