5110 | 2023-04-17 18:24:48 | rmlan | Különböző katicák | cpp14 | Hibás válasz 0/100 | 82ms | 39700 KiB |
#include<bits/stdc++.h>
using namespace std;
int n;
bool jo=1;
vector<int> p,m;
vector<pair<int, int> > l,e;
vector<vector<int>> g;
void dfs1(int u){
for(int v:g[u]){
dfs1(v);
e.push_back({v,u});
if(l[u].first == 0 && l[u].second == 1e6) continue;
l[v].first = max(max(l[v].first, l[u].first-1),0);
l[v].second = min(l[v].second, l[u].second+1);
if(l[v].second%2 == l[u].second%2 || l[v].first > l[v].second) jo=0;
}
}
int main(){
pair<int, int> df = {0,1e6};
cin >> n;
p.resize(n+1);
l.resize(n+1);
g.resize(n+1);
m.resize(n+1);
for(int i = 1; i <= n; i++){
l[i] = {0, 1e6};
cin>>p[i];
g[p[i]].push_back(i);
}
for(int i = 1; i <= n; i++){
cin >> m[i];
if(m[i] != -1) l[i]={m[i], m[i]};
}
dfs1(1);
reverse(e.begin(), e.end());
for(pair<int, int> pa:e){
int fi=pa.first,se=pa.second;
if(l[se]!=df && l[fi]!=df &&l[se].second%2 == l[fi].second%2) jo=0;
l[se].first=max(max(l[se].first, l[fi].first-1),0);
l[se].second=min(l[se].second, l[fi].second+1);
if(l[se].first > l[se].second) jo = 0;
}
dfs1(1);
//if(!jo){
cout << "NEM";
return 0;
//}
cout << "IGEN\n";
for(int i = 1; i <= n; i++){
if(l[1] == df){
cout << m[p[i]]+1 << " ";
m[i] = m[p[i]]+1;
continue;
}
cout << l[i].second << " ";
}
/*for(pair<int, int> a:l){
cout << a.first <<" " << a.second<< endl;
}*/
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Hibás válasz | 3ms | 1880 KiB | ||||
2 | Elfogadva | 3ms | 2116 KiB | ||||
3 | Hibás válasz | 64ms | 16936 KiB | ||||
subtask2 | 0/10 | ||||||
4 | Hibás válasz | 56ms | 15852 KiB | ||||
5 | Hibás válasz | 61ms | 17020 KiB | ||||
6 | Hibás válasz | 65ms | 18044 KiB | ||||
7 | Hibás válasz | 71ms | 19228 KiB | ||||
subtask3 | 0/15 | ||||||
8 | Elfogadva | 81ms | 38836 KiB | ||||
9 | Elfogadva | 79ms | 38748 KiB | ||||
10 | Hibás válasz | 82ms | 39700 KiB | ||||
11 | Hibás válasz | 79ms | 38832 KiB | ||||
12 | Hibás válasz | 75ms | 38444 KiB | ||||
13 | Hibás válasz | 81ms | 39048 KiB | ||||
14 | Hibás válasz | 75ms | 37844 KiB | ||||
subtask4 | 0/35 | ||||||
15 | Hibás válasz | 3ms | 4288 KiB | ||||
16 | Elfogadva | 3ms | 4248 KiB | ||||
17 | Elfogadva | 3ms | 4500 KiB | ||||
18 | Hibás válasz | 3ms | 4528 KiB | ||||
19 | Hibás válasz | 3ms | 4532 KiB | ||||
20 | Hibás válasz | 3ms | 4536 KiB | ||||
21 | Hibás válasz | 3ms | 4452 KiB | ||||
22 | Hibás válasz | 3ms | 4460 KiB | ||||
subtask5 | 0/40 | ||||||
23 | Hibás válasz | 68ms | 19672 KiB | ||||
24 | Elfogadva | 71ms | 20224 KiB | ||||
25 | Elfogadva | 72ms | 20592 KiB | ||||
26 | Hibás válasz | 68ms | 19856 KiB | ||||
27 | Hibás válasz | 68ms | 19640 KiB | ||||
28 | Hibás válasz | 72ms | 20272 KiB | ||||
29 | Hibás válasz | 71ms | 20340 KiB | ||||
30 | Hibás válasz | 70ms | 20008 KiB | ||||
31 | Hibás válasz | 68ms | 19812 KiB | ||||
32 | Hibás válasz | 71ms | 20096 KiB | ||||
33 | Hibás válasz | 75ms | 20576 KiB |