제출 #1349753

#제출 시각아이디문제언어결과실행 시간메모리
1349753blameazu9월 (APIO24_september)C++20
0 / 100
1 ms344 KiB
#include "september.h"

#include <bits/stdc++.h>
using namespace std;

int solve(int n, int m, vector<int> F, vector<vector<int> > S) {
	int ans = 1;
	
	vector<int> dp(n, -1);
	vector<int> in(n);
	for(int i = 1; i < n; i++) in[F[i]]++;
	dp[0] = 0;
	for(int o = 0; o < n-1; o++) {
		int j = S[0][o];
		in[F[j]]--;
		
		if(dp[o] == -1) continue;
		vector<int> vis(n);
		auto tmp_in = in;
		int now = 0;
		for(int k = o+1; k < n-1; k++) {
			int i = S[0][k];
			vis[i] = 1;
			if(tmp_in[i] > 0) now++;
			tmp_in[F[i]]--;
			if(vis[F[i]] && tmp_in[F[i]] == 0) now--;
			if(now == 0) {
				dp[k+1] = max(dp[k+1], dp[o-1+1] + 1);
			}
		}
	}
	return dp[n-1];
}

/*
10! = 3628800
*/
#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...