5547 2023. 07. 22 20:27:06 gortomi Lámpák cpp17 Hibás válasz 0/100 64ms 21576 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) == d[i]) ans ^= x;
        }
        cout << ans << "\n";
    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Hibás válasz 3ms 2040 KiB
2 Elfogadva 3ms 2248 KiB
subtask2 0/15
3 Hibás válasz 3ms 2480 KiB
4 Hibás válasz 18ms 3376 KiB
5 Elfogadva 50ms 9504 KiB
subtask3 0/10
6 Hibás válasz 3ms 2896 KiB
7 Hibás válasz 3ms 2876 KiB
8 Hibás válasz 3ms 3008 KiB
9 Hibás válasz 3ms 3092 KiB
10 Hibás válasz 3ms 3096 KiB
subtask4 0/30
11 Elfogadva 14ms 3300 KiB
12 Elfogadva 14ms 3284 KiB
13 Hibás válasz 14ms 3504 KiB
14 Hibás válasz 14ms 3860 KiB
15 Hibás válasz 14ms 3928 KiB
16 Hibás válasz 14ms 4148 KiB
17 Hibás válasz 14ms 4164 KiB
subtask5 0/45
18 Hibás válasz 48ms 6092 KiB
19 Hibás válasz 46ms 6864 KiB
20 Hibás válasz 48ms 6732 KiB
21 Hibás válasz 46ms 8444 KiB
22 Hibás válasz 46ms 8372 KiB
23 Elfogadva 64ms 13008 KiB
24 Hibás válasz 63ms 15344 KiB
25 Hibás válasz 63ms 15496 KiB
26 Hibás válasz 63ms 21476 KiB
27 Hibás válasz 64ms 21576 KiB
28 Hibás válasz 41ms 5504 KiB
29 Hibás válasz 39ms 5588 KiB