제출 #1179005

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

const int maxn=1e5+5;
int pos[maxn];
int con[maxn];
vector<int>E[maxn];

void dfs(int nd){
	con[nd] = pos[nd];
	int mx = -1;
	for(auto i : E[nd]){
		dfs(i);
		mx = max(mx, pos[i]);
	}
	if(mx > pos[nd]){
		con[nd] = mx;
	}
}

int solve(int N, int M, vector<int> F, vector<vector<int>> S){
	for(int i = 1;i < N;i++) E[F[i]].push_back(i);
	for(int i = 0;i < N-1;i++){
		pos[S[0][i]] = i;
	}
	dfs(0);
	int mx = 0;
	int K = 0;
	for(int i = 0;i < N-1;i++){
		mx = max(mx, con[S[0][i]]);
		if(mx == i){
			K++;
		}
	}
	return K;
}
#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...