제출 #1362554

#제출 시각아이디문제언어결과실행 시간메모리
1362554opeleklanos9월 (APIO24_september)C++20
45 / 100
78 ms7884 KiB
#include <iostream>
#include <vector>
#include <set>
using namespace std;

#include "september.h"

vector<vector<int>> adj;
set<int> needToFind;
vector<int> vis;

void dfs(int st){
    vis[st] = 1;
    for(auto i : adj[st]){
        if(vis[i]) continue;
        needToFind.insert(i);
        dfs(i);
    }
}

int solve(int N, int M, vector<int> F, vector<vector<int>> S){
    needToFind.clear();
    adj.assign(N, {});
    for(int i = 1; i<N; i++) adj[F[i]].push_back(i);
    vis.assign(N, 0);

    int ans = 0;
    for(int i = 0; i<N-1; i++){
        needToFind.erase(S[0][i]);
        dfs(S[0][i]);
        if(needToFind.size() == 0) ans++;
    }

    return ans;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…