162932025-04-21 09:23:43horkaVállalati ügyeletcpp17Time limit exceeded 42/1001.101s42420 KiB
#include <bits/stdc++.h>
using namespace std;
//#define int long long
#define pb push_back
#define sz(x) (int)x.size()
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
const int c=2e5+3,inf=1e7,gy=500;
vector<int> adj[c];
int be[c],ki[c],ido;
bool val[4*c];
void dfs(int cs)
{
    be[cs]=++ido;
    for(int &i:adj[cs])
        if(!be[i]) dfs(i);
    ki[cs]=++ido;
}
bool rendez(array<int, 3> a, array<int, 3> b)
{
    return (a[0]/gy<b[0]/gy || (a[0]/gy==b[0]/gy && a[1]<b[1]));
}
signed main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int n; cin>>n;
    vector<int> p(n+1),a(n+1);
    for(int i=1; i<=n; i++)
    {
        cin>>p[i];
        if(i>1)
        {
            adj[i].pb(p[i]);
            adj[p[i]].pb(i);
        }
    }
    for(int i=1; i<=n; i++)
        cin>>a[i];
    dfs(1);
    vector<array<int, 3>> kerd;
    vector<int> ans(n+1);
    for(int i=1; i<=n; i++)
        kerd.pb({be[i],ki[i],i});
    sort(all(kerd),rendez);
    vector<int> cnt(n+1);
    set<int> nincs;
    for(int i=1; i<=n+1; i++)
        nincs.insert(i);
    vector<int> ert(2*n+1);
    for(int i=1; i<=n; i++)
        ert[be[i]]=a[i];
    auto op=[&](int ind, int ad)
    {
        if(ert[ind]==0) return;
        cnt[ert[ind]]+=ad;
        if(cnt[ert[ind]]==0) nincs.insert(ert[ind]);
        else nincs.erase(ert[ind]);
    };
    int bal=1,jobb=1,kor=0;
    op(1,1);
    for(auto &[l,r,ind]:kerd)
    {
        while(bal>l)
        {
            bal--;
            op(bal,1);
        }
        while(bal<l)
        {
            op(bal,-1);
            bal++;
        }
        while(jobb>r)
        {
            op(jobb,-1);
            jobb--;
        }
        while(jobb<r)
        {
            jobb++;
            op(jobb,1);
        }
        ans[ind]=*nincs.begin();
    }
    for(int i=1; i<=n; i++)
        cout<<ans[i]<<" ";
    cout<<"\n";
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted4ms4916 KiB
2Time limit exceeded1.077s31820 KiB
subtask25/5
3Accepted6ms4920 KiB
4Accepted4ms4916 KiB
5Accepted6ms4916 KiB
6Accepted4ms4916 KiB
subtask38/8
7Accepted6ms4920 KiB
8Accepted4ms4916 KiB
9Accepted6ms4916 KiB
10Accepted4ms4916 KiB
11Accepted330ms31772 KiB
12Accepted365ms31872 KiB
13Accepted407ms31916 KiB
14Accepted505ms32064 KiB
subtask412/12
15Accepted6ms4920 KiB
16Accepted4ms4916 KiB
17Accepted6ms4916 KiB
18Accepted4ms4916 KiB
19Accepted317ms41892 KiB
20Accepted368ms41636 KiB
21Accepted409ms41640 KiB
22Accepted533ms41496 KiB
23Accepted367ms42400 KiB
24Accepted342ms42420 KiB
subtask517/17
25Accepted6ms4920 KiB
26Accepted4ms4916 KiB
27Accepted6ms4916 KiB
28Accepted4ms4916 KiB
29Accepted7ms5356 KiB
30Accepted8ms5428 KiB
31Accepted7ms5428 KiB
32Accepted9ms5172 KiB
33Accepted8ms5436 KiB
34Accepted8ms5172 KiB
35Accepted9ms5400 KiB
36Accepted8ms5252 KiB
37Accepted8ms5408 KiB
38Accepted8ms5204 KiB
39Accepted8ms5172 KiB
40Accepted8ms5172 KiB
41Accepted7ms5428 KiB
subtask60/28
42Time limit exceeded1.101s32180 KiB
43Time limit exceeded1.101s33188 KiB
44Time limit exceeded1.101s34980 KiB
45Time limit exceeded1.1s37028 KiB
46Time limit exceeded1.077s39080 KiB
47Time limit exceeded1.077s40608 KiB
48Accepted554ms32156 KiB
49Accepted532ms41632 KiB
50Accepted351ms42408 KiB
subtask70/30
51Accepted4ms5116 KiB
52Time limit exceeded1.093s29836 KiB
53Accepted6ms4920 KiB
54Accepted4ms4916 KiB
55Accepted6ms4916 KiB
56Accepted4ms4916 KiB
57Accepted330ms31772 KiB
58Accepted365ms31872 KiB
59Accepted407ms31916 KiB
60Accepted505ms32064 KiB
61Accepted317ms41892 KiB
62Accepted368ms41636 KiB
63Accepted409ms41640 KiB
64Accepted533ms41496 KiB
65Accepted367ms42400 KiB
66Accepted342ms42420 KiB
67Accepted7ms5356 KiB
68Accepted8ms5428 KiB
69Accepted7ms5428 KiB
70Accepted9ms5172 KiB
71Accepted8ms5436 KiB
72Accepted8ms5172 KiB
73Accepted9ms5400 KiB
74Accepted8ms5252 KiB
75Accepted8ms5408 KiB
76Accepted8ms5204 KiB
77Accepted8ms5172 KiB
78Accepted8ms5172 KiB
79Accepted7ms5428 KiB
80Time limit exceeded1.101s32180 KiB
81Time limit exceeded1.101s33188 KiB
82Time limit exceeded1.101s34980 KiB
83Time limit exceeded1.1s37028 KiB
84Time limit exceeded1.077s39080 KiB
85Time limit exceeded1.077s40608 KiB
86Accepted554ms32156 KiB
87Accepted532ms41632 KiB
88Accepted351ms42408 KiB
89Accepted819ms31648 KiB
90Accepted842ms31908 KiB
91Time limit exceeded1.101s31908 KiB
92Time limit exceeded1.085s31908 KiB
93Time limit exceeded1.083s33696 KiB
94Time limit exceeded1.082s36256 KiB
95Time limit exceeded1.101s38920 KiB
96Time limit exceeded1.085s32164 KiB
97Time limit exceeded1.085s32160 KiB
98Time limit exceeded1.085s32928 KiB
99Time limit exceeded1.101s32132 KiB
100Time limit exceeded1.088s33012 KiB
101Time limit exceeded1.082s34976 KiB