Submission #1202193

#TimeUsernameProblemLanguageResultExecution timeMemory
1202193AI_2512September (APIO24_september)C++20
100 / 100
82 ms6304 KiB
#include <bits/stdc++.h>
#define ff first 
#define ss second
using namespace std;

int solve(int N, int M, vector<int> F, vector<vector<int>> S) {
	int k = 0;
	vector<int> mp(N, 0);
	vector<int> st;
	vector<int> chs(N, 0), cnt(N, 0);
	for (int i = 1; i< N;i++) chs[F[i]]++;
	int l = 0;
	for (int i = 0; i< N-1;i++){
		l++;
		for (int j = 0; j< M;j++){
			mp[S[j][i]]++;
			if (mp[S[j][i]] == M && cnt[S[j][i]] == chs[S[j][i]]){
				st.push_back(S[j][i]);
				int cur = F[S[j][i]];
				cnt[cur]++;
				while (cnt[cur] == chs[cur] && mp[cur] == M){
					st.push_back(cur);
					cur = F[cur];
					cnt[cur]++;
				}
			}
		}
		if (st.size() == l){
			l = 0;
			k++;
			st.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...