Nu aveti permisiuni pentru a descarca fisierul grader_test14.in

Cod sursa(job #3289920)

Utilizator MerlinTheWizardMelvin Abibula MerlinTheWizard Data 29 martie 2025 10:35:06
Problema Stramosi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<bits/stdc++.h>

using namespace std;

const int NMAX = 25e4 + 5;
int n, m, rasp[NMAX], tata[NMAX];
vector<pair<int, int>> q[NMAX];
vector<int> st, v[NMAX];

void dfs(int node)
{
    st.push_back(node);
    
    for(auto u : q[node])
    {
        rasp[u.second] = st[st.size() - u.first - 1];
    }
    
    for(auto u : v[node])
    {
        dfs(u);
    }
    st.pop_back();
    
}

int main()
{
    freopen("stramosi.in", "r", stdin);
    freopen("stramosi.out", "w", stdout);
    
    cin >> n >> m;
    int x, y;
    for(int i = 1; i <= n; i++)
    {
        cin >> tata[i];
        v[tata[i]].push_back(i);
    }
    
    for(int i = 1; i <= m; i++)
    {
        cin >> x >> y;
        q[x].push_back({y, i});
    }  
    
    for(int i = 1; i <= n; i++)
        if(tata[i] == 0)
            dfs(i);
    
    for(int i = 1; i <= m; i++)
        cout << rasp[i] << "\n";
}