77922024-01-11 10:17:31gortomiKülönböző katicákcpp17Hibás válasz 65/10052ms40888 KiB
#include <bits/stdc++.h>
using namespace std;
vector<vector<int> > g;
vector<int> l, r, p, val, a;
void dfs(int v)
{
    for(auto x : g[v])
    {
        dfs(x);
        if(p[x] != -1) p[v] = 1 - p[x];
        l[v] = max(l[v], l[x] - 1);
        r[v] = min(r[v], r[x] + 1);
    }
    if(p[v] == -1 && a[v] != -1) p[v] = a[v] % 2;
    if(a[v] != -1 && p[v] != (a[v] % 2))
    {
        cout << "NEM\n";
        exit(0);
    }
}
void calc(int v)
{
    for(auto x : g[v])
    {
        if(val[v] - 1 < l[x]) val[x] = val[v] + 1;
        else val[x] = val[v] - 1;
        calc(x);
    }
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n;
    cin >> n;
    g.resize(n + 1);
    l.resize(n + 1, 0);
    r.resize(n + 1, 1e7);
    a.resize(n + 1);
    p.resize(n + 1, -1);
    val.resize(n + 1);
    for(int i = 1; i <= n; i++)
    {
        int x;
        cin >> x;
        g[x].push_back(i);
    }
    for(int i = 1; i <= n; i++)
    {
        cin >> a[i];
        if(a[i] != -1) l[i] = r[i] = a[i];
    }
    dfs(1);
    for(int i = 1; i <= n; i++)
    {
        if(l[i] > r[i])
        {
            cout << "NEM\n";
            return 0;
        }
    }
    val[1] = l[1];
    calc(1);
    cout << "IGEN\n";
    for(int i = 1; i <= n; i++) cout << val[i] << " ";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1892 KiB
2Elfogadva3ms2120 KiB
3Elfogadva41ms14248 KiB
subtask210/10
4Elfogadva35ms13688 KiB
5Elfogadva39ms15688 KiB
6Elfogadva43ms17228 KiB
7Elfogadva46ms19152 KiB
subtask315/15
8Elfogadva39ms36548 KiB
9Elfogadva39ms37184 KiB
10Elfogadva52ms39064 KiB
11Elfogadva50ms39012 KiB
12Elfogadva48ms39204 KiB
13Elfogadva50ms40888 KiB
14Elfogadva46ms40488 KiB
subtask40/35
15Elfogadva3ms13016 KiB
16Hibás válasz3ms12972 KiB
17Elfogadva3ms13128 KiB
18Elfogadva3ms13084 KiB
19Elfogadva3ms13352 KiB
20Elfogadva3ms13308 KiB
21Elfogadva3ms13316 KiB
22Elfogadva3ms13576 KiB
subtask540/40
23Elfogadva43ms25996 KiB
24Elfogadva34ms27716 KiB
25Elfogadva35ms28928 KiB
26Elfogadva43ms29016 KiB
27Elfogadva45ms29688 KiB
28Elfogadva46ms31440 KiB
29Elfogadva48ms32580 KiB
30Elfogadva45ms32904 KiB
31Elfogadva43ms33652 KiB
32Elfogadva45ms34528 KiB
33Elfogadva48ms36160 KiB