Submission #1312239

#TimeUsernameProblemLanguageResultExecution timeMemory
1312239azamuraiSeptember (APIO24_september)C++20
0 / 100
1 ms572 KiB
#include "september.h"

#include <vector>

using namespace std;

int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
	vector <int> dp(N + 1, 0);
	vector <int> pos(N, 0);
	for (int i = 0; i < N - 1; i++) {
		pos[S[0][i]] = i;
	}
	for (int i = 1; i < N; i++) {
		if (F[i] == 0) continue;
		if (pos[F[i]] < pos[i]) {
			dp[pos[F[i]]]++;
			dp[pos[i] + 1]--;
		}
	}
	for (int i = 1; i < N; i++) {
		dp[i] += dp[i - 1];
	}
	int ans = 1;
	for (int i = 1; i < N - 1; i++) {
		if (dp[i] == 0) ans++;
		else if (!dp[i - 1]) 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...