제출 #1366827

#제출 시각아이디문제언어결과실행 시간메모리
1366827vahagng9월 (APIO24_september)C++20
100 / 100
93 ms19132 KiB
#include "september.h"
#include <bits/stdc++.h>
using namespace std;
#include <vector>

const int N = 1e5 + 10;

vector<int> adj[N];

int mx_id[N], mx_sub_id[N];

void dfs(int node, int parent){
	mx_sub_id[node] = mx_id[node];
	for(auto i : adj[node]){
		if(i == parent) continue;
		dfs(i, node);
		mx_sub_id[node] = max(mx_sub_id[node], mx_sub_id[i]);
	}
}

int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
	for(int i = 0; i < N; i++){
		adj[i].clear();
		mx_id[i] = -1;
		mx_sub_id[i] = -1;
	}
	for(int i = 1; i < N; i++){
		adj[F[i]].push_back(i);
		adj[i].push_back(F[i]);
	}
	for(int i = 0; i < M; i++){
		for(int j = 0; j < N - 1; j++){
			mx_id[S[i][j]] = max(mx_id[S[i][j]], j);
		}
	}
	dfs(0, 0);
	int cur = 0, ans = 0;
	for(int i = 0; i < N - 1; i++){
		for(int j = 0; j < M; j++){
			cur = max(cur, mx_sub_id[S[j][i]]);
		}
		if(cur == i) ans++;
	}
	return ans;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…