Cod sursa(job #2955186)

Utilizator YosifIosif Andrei Stefan Yosif Data 16 decembrie 2022 15:31:24
Problema Arbore partial de cost minim Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.07 kb
#include <bits/stdc++.h> 
using namespace std;

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

int n, m, first[100001], last[100001], v[500001], k;
vector <int> g[100001];
bitset <100001> f;
vector <pair<int, int>> t[2000001];

void generate(int nod)
{
    f[nod] = 1;
    v[++k] = nod;
    first[nod] = k;

    for (auto& i : g[nod])
    {
        if (f[i])
            continue;

        generate(i);
        v[++k] = nod;
        last[nod] = k;
    }
}

void add(int i, int l, int r, int x, int y, int index, int val)
{
    if (r < x || r < x)
        return;

    if (x <= l && r <= y)
    {
        t[i].push_back({ index, val });
        return;
    }

    int m = (l + r) / 2;

    add(2 * i, l, m, x, y, index, val);
    add(2 * i + 1, m + 1, r, x, y, index, val);
}

int main()
{
    fin >> n >> m;

    for (int i = 1; i < n; i++)
    {
        int x, y;
        fin >> x >> y;
        g[x].push_back(y);
        g[y].push_back(x);
    }

    generate(1);

    add(1, 1, k, k, k, 1, 100);
    
    return 0;
}