Submission #1068486

# Submission time Handle Problem Language Result Execution time Memory
1068486 2024-08-21T10:10:57 Z amirhoseinfar1385 Beech Tree (IOI23_beechtree) C++17
0 / 100
2000 ms 81488 KB
#include "beechtree.h"
#include<bits/stdc++.h>
using namespace std;
const int maxn=200000+10;
int n,m,all[maxn],dp[maxn],vas[maxn],nist[maxn],sz[maxn];
set<int>st[maxn];
vector<int>adj[maxn];

int dfsch2(int u){
    int ret=dp[u];
    for(auto x:adj[u]){
        int fake=dfsch2(x);
        if(fake==1&&dp[u]==0){
      //      if(u==2){
        //        cout<<"wtf"<<endl;
          //  }
            nist[u]=1;
            ret|=fake;
        }
    }
    return ret;
}

set<int> dfsch(int u){
    set<int>ret;
    ret.insert(dp[u]);
    for(auto x:adj[u]){
        set<int>fake=dfsch(x);
        for(auto x:fake){
            ret.insert(x);
        }
    }
    if(ret.count(1)==1&&1==ret.count(2)){
      //  if(u==2){
        //    cout<<"wtf"<<endl;
        //}
        nist[u]=1;
    }
    return ret;
}

void check(int cl){
    for(int i=1;i<=m;i++){
        for(int j=0;j<n;j++){
            dp[j]=0;
            if(st[j].count(cl)==1){
                dp[j]+=1;
            }
            if(st[j].count(i)==1){
                dp[j]+=2;
            }
        }
        dfsch(0);
    }
    for(int j=0;j<n;j++){
        dp[j]=st[j].count(cl);
    }
    dfsch2(0);
}

int calc(int u){
    sz[u]=1;
    int ret=nist[u];
    int cnt=0;
    for(auto x:adj[u]){
        ret|=calc(x);
        sz[u]+=sz[x];
        if(sz[x]>1){
            cnt++;
        }
    }
    if(cnt>1){
        ret=1;
    }
    if(ret){
        vas[u]=1;
    }
    return ret;
}

std::vector<int> beechtree(int N, int M, std::vector<int> P, std::vector<int> C)
{
    n=N;
    m=M;
    for(int i=1;i<=n-1;i++){
        adj[P[i]].push_back(i);
        all[i]=C[i];
        if(st[P[i]].count(all[i])!=0){
            nist[P[i]]=1;
        //    if(P[i]==2){
          //      cout<<"wtf"<<endl;
            //}
        }
        st[P[i]].insert(all[i]);
    }
    for(int i=1;i<=m;i++){
        check(i);
    }
    calc(0);
    vector<int>ret(n);
    for(int i=0;i<n;i++){
        ret[i]=(1^vas[i]);
    }
    return ret;
}
# Verdict Execution time Memory Grader output
1 Correct 5 ms 14428 KB Output is correct
2 Incorrect 5 ms 14428 KB 2nd lines differ - on the 2nd token, expected: '1', found: '0'
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 14424 KB Output is correct
2 Correct 5 ms 14428 KB Output is correct
3 Correct 78 ms 14312 KB Output is correct
4 Correct 66 ms 14428 KB Output is correct
5 Correct 64 ms 14528 KB Output is correct
6 Correct 65 ms 14428 KB Output is correct
7 Correct 6 ms 14428 KB Output is correct
8 Correct 5 ms 14428 KB Output is correct
9 Correct 6 ms 14428 KB Output is correct
10 Correct 6 ms 14424 KB Output is correct
11 Correct 7 ms 14428 KB Output is correct
12 Correct 7 ms 14424 KB Output is correct
13 Correct 6 ms 14428 KB Output is correct
14 Correct 5 ms 14428 KB Output is correct
15 Correct 6 ms 14384 KB Output is correct
16 Correct 6 ms 14424 KB Output is correct
17 Correct 6 ms 14428 KB Output is correct
18 Incorrect 5 ms 14424 KB 2nd lines differ - on the 1st token, expected: '0', found: '1'
19 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 14424 KB Output is correct
2 Correct 5 ms 14428 KB Output is correct
3 Correct 78 ms 14312 KB Output is correct
4 Correct 66 ms 14428 KB Output is correct
5 Correct 64 ms 14528 KB Output is correct
6 Correct 65 ms 14428 KB Output is correct
7 Execution timed out 2028 ms 81488 KB Time limit exceeded
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 845 ms 14424 KB Output is correct
2 Correct 1230 ms 14536 KB Output is correct
3 Correct 951 ms 14424 KB Output is correct
4 Correct 1002 ms 14784 KB Output is correct
5 Correct 1051 ms 14428 KB Output is correct
6 Correct 943 ms 14428 KB Output is correct
7 Correct 933 ms 14672 KB Output is correct
8 Correct 853 ms 14676 KB Output is correct
9 Incorrect 801 ms 14424 KB 2nd lines differ - on the 1st token, expected: '1', found: '0'
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 14424 KB Output is correct
2 Correct 5 ms 14428 KB Output is correct
3 Correct 6 ms 14428 KB Output is correct
4 Correct 5 ms 14428 KB Output is correct
5 Execution timed out 2028 ms 81488 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 14428 KB Output is correct
2 Incorrect 5 ms 14428 KB 2nd lines differ - on the 2nd token, expected: '1', found: '0'
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 14424 KB Output is correct
2 Correct 5 ms 14428 KB Output is correct
3 Correct 6 ms 14428 KB Output is correct
4 Correct 5 ms 14428 KB Output is correct
5 Correct 6 ms 14428 KB Output is correct
6 Correct 6 ms 14424 KB Output is correct
7 Correct 7 ms 14428 KB Output is correct
8 Correct 7 ms 14424 KB Output is correct
9 Correct 6 ms 14428 KB Output is correct
10 Correct 5 ms 14428 KB Output is correct
11 Correct 6 ms 14384 KB Output is correct
12 Correct 6 ms 14424 KB Output is correct
13 Correct 6 ms 14428 KB Output is correct
14 Incorrect 5 ms 14424 KB 2nd lines differ - on the 1st token, expected: '0', found: '1'
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 14428 KB Output is correct
2 Incorrect 5 ms 14428 KB 2nd lines differ - on the 2nd token, expected: '1', found: '0'
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 14424 KB Output is correct
2 Correct 5 ms 14428 KB Output is correct
3 Correct 6 ms 14428 KB Output is correct
4 Correct 5 ms 14428 KB Output is correct
5 Correct 6 ms 14428 KB Output is correct
6 Correct 6 ms 14424 KB Output is correct
7 Correct 7 ms 14428 KB Output is correct
8 Correct 7 ms 14424 KB Output is correct
9 Correct 6 ms 14428 KB Output is correct
10 Correct 5 ms 14428 KB Output is correct
11 Correct 6 ms 14384 KB Output is correct
12 Correct 6 ms 14424 KB Output is correct
13 Correct 6 ms 14428 KB Output is correct
14 Incorrect 5 ms 14424 KB 2nd lines differ - on the 1st token, expected: '0', found: '1'
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 14428 KB Output is correct
2 Incorrect 5 ms 14428 KB 2nd lines differ - on the 2nd token, expected: '1', found: '0'
3 Halted 0 ms 0 KB -