제출 #1167064

#제출 시각아이디문제언어결과실행 시간메모리
1167064rayan_bdSeptember (APIO24_september)C++20
11 / 100
2 ms2884 KiB
#include <bits/stdc++.h>

using namespace std;


const int mxB = 28;
const int mxN = 1e5+1000;
const int mxK = 6;

vector<int> adj[mxN];
int mx[mxN];

void dfs(int u=0){
	for(auto it:adj[u]){
		dfs(it);
		mx[u]=max(mx[u],mx[it]);
	}
}

int solve(int N,int M,vector<int> F,vector<vector<int>> S){
	for(int i=0;i<=N;++i) adj[i].clear(),mx[i]=0;
	for(int i=1;i<N;++i) adj[F[i]].push_back(i);
	for(int i=0;i<M;++i){
		for(int j=0;j<N-1;++j){	
			mx[S[i][j]]=max(mx[S[i][j]],j);
		}
	}
	dfs();
	int ans=0,idx=0;
	while(idx<N-1){
		idx=mx[S[0][idx]]+1;
		++ans;
	}
	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...