55482023-07-22 23:43:22gortomiLámpákcpp17Elfogadva 100/10064ms21104 KiB
#include <bits/stdc++.h>
using namespace std;
vector<vector<int> > g;
vector<int> d;
void dfs(int n, int dep)
{
    d[n] = dep;
    for(auto x : g[n]) dfs(x, dep + 1);
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n, k, q;
    cin >> n >> k >> q;
    g.resize(n + 1);
    d.resize(n + 1);
    for(int i = 2; i <= n; i++)
    {
        int x;
        cin >> x;
        g[x].push_back(i);
    }
    dfs(1, 0);
    while(q--)
    {
        int ans = 0;
        for(int i = 1; i <= n; i++)
        {
            int x;
            cin >> x;
            if(((d[i] + k - 1) & (k - 1)) == (k - 1)) ans ^= x;
        }
        cout << ans << "\n";
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1764 KiB
2Elfogadva3ms1920 KiB
subtask215/15
3Elfogadva3ms2148 KiB
4Elfogadva18ms3092 KiB
5Elfogadva50ms9248 KiB
subtask310/10
6Elfogadva3ms2656 KiB
7Elfogadva3ms2868 KiB
8Elfogadva3ms2880 KiB
9Elfogadva3ms3128 KiB
10Elfogadva3ms3232 KiB
subtask430/30
11Elfogadva14ms3428 KiB
12Elfogadva14ms3776 KiB
13Elfogadva14ms3736 KiB
14Elfogadva14ms3936 KiB
15Elfogadva14ms3944 KiB
16Elfogadva14ms3940 KiB
17Elfogadva14ms3940 KiB
subtask545/45
18Elfogadva46ms6020 KiB
19Elfogadva46ms6476 KiB
20Elfogadva46ms6468 KiB
21Elfogadva46ms8268 KiB
22Elfogadva46ms8168 KiB
23Elfogadva64ms12928 KiB
24Elfogadva61ms15088 KiB
25Elfogadva61ms15092 KiB
26Elfogadva63ms20956 KiB
27Elfogadva63ms21104 KiB
28Elfogadva39ms4972 KiB
29Elfogadva39ms4944 KiB