Submission #1203305

#TimeUsernameProblemLanguageResultExecution timeMemory
1203305hyl_backupSeptember (APIO24_september)C++20
0 / 100
1 ms464 KiB
#include "september.h"
#include <vector>
#include <map>
#include <iostream>

struct node {
    std::vector<int> chl;
    int son = 0;
};

int n, m;
std::map<int, int> map;

void get(int leaf, node tree[]){
    //std::cout << "Pos: "<< leaf <<'\n';
    if(map.find(leaf)==map.end()){
        map[leaf] = m;
        if(tree[leaf].son){
            for(int x : tree[leaf].chl){
                get(x, tree);
            }
            tree[leaf].son=0;
        }
    }
    return;
}

int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
    map.clear();
    int ans = 0;


    n = N;
    m = M;

    node tree[n];

    for(int i = 1; i<n; ++i){
        tree[F[i]].chl.push_back(i);
        ++tree[F[i]].son;
    }

    for(int i = 0; i<n-1; ++i){
        for(int j = 0; j<m; ++j){
            //std::cout << j << ':' << i <<'\n';
            int leaf = S[j][i];
            //std::cout << leaf << '\n';
            get(leaf, tree);
            --map[leaf];
            if(map[leaf]==0){
                //map.erase(map.find([leaf]));
                //std::cout << map.size()<<" siz1\n";
                map.erase(leaf);
                //std::cout << map.size()<<" siz2\n";
            }
            if(map.empty()){
                ++ans;
            }
        }
    }
    //std::cout << ans<<" ans\n";
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...