162942025-04-21 09:24:33horkaVállalati ügyeletcpp17Time limit exceeded 42/1001.101s40104 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=350;
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
1Accepted4ms5100 KiB
2Time limit exceeded1.085s29596 KiB
subtask25/5
3Accepted6ms4920 KiB
4Accepted4ms4916 KiB
5Accepted6ms4928 KiB
6Accepted4ms5108 KiB
subtask38/8
7Accepted6ms4920 KiB
8Accepted4ms4916 KiB
9Accepted6ms4928 KiB
10Accepted4ms5108 KiB
11Accepted337ms30392 KiB
12Accepted354ms30388 KiB
13Accepted402ms30388 KiB
14Accepted518ms30456 KiB
subtask412/12
15Accepted6ms4920 KiB
16Accepted4ms4916 KiB
17Accepted6ms4928 KiB
18Accepted4ms5108 KiB
19Accepted310ms39588 KiB
20Accepted372ms39332 KiB
21Accepted393ms39372 KiB
22Accepted532ms39076 KiB
23Accepted365ms40100 KiB
24Accepted330ms39840 KiB
subtask517/17
25Accepted6ms4920 KiB
26Accepted4ms4916 KiB
27Accepted6ms4928 KiB
28Accepted4ms5108 KiB
29Accepted8ms5172 KiB
30Accepted7ms5428 KiB
31Accepted8ms5620 KiB
32Accepted9ms5404 KiB
33Accepted9ms5420 KiB
34Accepted8ms5184 KiB
35Accepted8ms5176 KiB
36Accepted8ms5404 KiB
37Accepted8ms5428 KiB
38Accepted8ms5172 KiB
39Accepted8ms5400 KiB
40Accepted8ms5392 KiB
41Accepted8ms5420 KiB
subtask60/28
42Time limit exceeded1.093s29788 KiB
43Time limit exceeded1.093s30644 KiB
44Time limit exceeded1.093s32420 KiB
45Time limit exceeded1.093s34732 KiB
46Time limit exceeded1.088s36704 KiB
47Time limit exceeded1.088s37988 KiB
48Accepted540ms30368 KiB
49Accepted549ms39080 KiB
50Accepted345ms40104 KiB
subtask70/30
51Accepted4ms5108 KiB
52Time limit exceeded1.075s29600 KiB
53Accepted6ms4920 KiB
54Accepted4ms4916 KiB
55Accepted6ms4928 KiB
56Accepted4ms5108 KiB
57Accepted337ms30392 KiB
58Accepted354ms30388 KiB
59Accepted402ms30388 KiB
60Accepted518ms30456 KiB
61Accepted310ms39588 KiB
62Accepted372ms39332 KiB
63Accepted393ms39372 KiB
64Accepted532ms39076 KiB
65Accepted365ms40100 KiB
66Accepted330ms39840 KiB
67Accepted8ms5172 KiB
68Accepted7ms5428 KiB
69Accepted8ms5620 KiB
70Accepted9ms5404 KiB
71Accepted9ms5420 KiB
72Accepted8ms5184 KiB
73Accepted8ms5176 KiB
74Accepted8ms5404 KiB
75Accepted8ms5428 KiB
76Accepted8ms5172 KiB
77Accepted8ms5400 KiB
78Accepted8ms5392 KiB
79Accepted8ms5420 KiB
80Time limit exceeded1.093s29788 KiB
81Time limit exceeded1.093s30644 KiB
82Time limit exceeded1.093s32420 KiB
83Time limit exceeded1.093s34732 KiB
84Time limit exceeded1.088s36704 KiB
85Time limit exceeded1.088s37988 KiB
86Accepted540ms30368 KiB
87Accepted549ms39080 KiB
88Accepted345ms40104 KiB
89Accepted797ms29864 KiB
90Accepted833ms30000 KiB
91Time limit exceeded1.101s29604 KiB
92Time limit exceeded1.08s29600 KiB
93Time limit exceeded1.087s31656 KiB
94Time limit exceeded1.08s33952 KiB
95Time limit exceeded1.085s36260 KiB
96Time limit exceeded1.09s29864 KiB
97Time limit exceeded1.09s30112 KiB
98Time limit exceeded1.078s30884 KiB
99Time limit exceeded1.101s29856 KiB
100Time limit exceeded1.087s30884 KiB
101Time limit exceeded1.083s32928 KiB