Submission #1179020

#TimeUsernameProblemLanguageResultExecution timeMemory
1179020Gurban9월 (APIO24_september)C++20
0 / 100
13 ms2888 KiB
#include "september.h"
#include <bits/stdc++.h>
using namespace std;

const int maxn=1e5+5;
int vis[maxn];
bool tr;
vector<int>E[maxn];

void dfs(int nd){
	for(auto i : E[nd]){
		dfs(i);
		if(vis[nd] == 1 and vis[i] == 0) tr = 0;
	}
}

int solve(int N, int M, vector<int> F, vector<vector<int>> S){
	for(int i = 0;i < N;i++) E[i].clear();
	for(int i = 1;i < N;i++) E[F[i]].push_back(i);
	int K = 0;
	vector<set<int>>v(M);
	for(int i = 0;i < N-1;i++){
		bool ok = 1;
		for(int j = 0;j < M;j++){
			v[j].insert(S[j][i]);
			vis[S[j][i]] = 1;
			if(j > 0 and v[j] != v[j-1]) ok = 0;
		}
		if(ok == 1){
			tr = 1;
			dfs(0);
			if(tr == 1){
				K++;
				for(int j = 0;j < M;j++) v[j].clear();
			}
		}
	}
	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...