제출 #1350942

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

const int N = 1e5 + 5;
int idx[N][10];
int ans = 0;

int n,m;
vector<vector<int>> g;

void dfs(int nd, int p){
	int ok = 1;
	for(auto it:g[nd]) if(it != p) dfs(it, nd);
	for(auto it:g[nd]) if(it != p) for(int i = 0;i<m;++i) if(idx[nd][i] < idx[it][i]) ok = 0;
	for(auto it:g[nd]) if(it != p) for(int i = 0;i<m;++i) idx[nd][i] = max(idx[nd][i], idx[it][i]);
	ans += ok;
}

int solve(int N, int M, vector<int> F, vector<vector<int>> S) {
	n = N, m = M;
	for(int i = 0;i<m;++i) for(int j = 0;j<n - 1;++j) idx[S[i][j]][i] = j;
	g.clear();
	g.resize(n);
	for(int i = 1;i<n;++i) g[F[i]].push_back(i);
	dfs(0, -1);
	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...