Submission #1182478

#TimeUsernameProblemLanguageResultExecution timeMemory
1182478AgageldiSeptember (APIO24_september)C++20
0 / 100
54 ms117916 KiB
#include "bits/stdc++.h"
#include "september.h"
// #include "stub.cpp"
using namespace std;

#define SZ(v) (int)v.size()
#define ll long long
#define MAX_N 5000005

int n, vis[MAX_N], ans, ind[MAX_N], r = -1;
vector <int> v[MAX_N];

void solve(int x) {
	vis[x] = 1;
	r = max(r, ind[x]);
	for(auto i : v[x]) {
		solve(i);
		v[i].clear();
	}
}

int solve(int N, int M, vector<int> F, vector<vector<int>> S) {
	ans = 0;
	r = -1;
	for(int i = 0; i < N; i++) {
		v[i].clear();
		vis[i] = 0;
	}
	for(int i = 1; i < N; i++) {
		v[F[i]].push_back(i);
	}
	for(int j = 0; j < M; j++) {
		for(int k = 0; k < N - 1; k++) {
			ind[S[j][k]] = max(ind[S[j][k]],k);
		}
	}
	for(int j = 0; j < N - 1; j++) {
		r = max(r,j);
		for(int k = 0; k < M; k++){
			solve(S[k][j]);
		}
		if(r == j) 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...