104172024-04-01 23:30:16111Kutyavetélkedőcpp17Elfogadva 100/10096ms24116 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int N,K;
	cin>>N>>K;
	vector<int>v(N+3);
	for(int i=1;i<=N;i++){
		cin>>v[i];
	}
	vector<vector<int>>g(K+2);
	int M;
	cin>>M;
	for(int i=0;i<M;i++){
		int a,b;
		cin>>a>>b;
		g[a].push_back(b);
	}
	for(int i=1;i<=K;i++){
		g[0].push_back(i);
		g[i].push_back(0);
		sort(g[i].begin(),g[i].end());
	}
	vector<int>dp(N+3,-N-2);
	dp[N+1]=-1;
	dp[N+2]=-1;
	for(int i=N;i>=0;i--){
		if(binary_search(g[v[i]].begin(),g[v[i]].end(),v[i+1])){
			dp[i]=max(dp[i],dp[i+1]+1);
		}
		if(binary_search(g[v[i]].begin(),g[v[i]].end(),v[i+2])){
			dp[i]=max(dp[i],dp[i+2]+1);
		}
	}
	cout<<max(dp[0],0ll)<<'\n';
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1824 KiB
2Elfogadva3ms2056 KiB
subtask215/15
3Elfogadva3ms2256 KiB
4Elfogadva3ms2480 KiB
5Elfogadva3ms2680 KiB
6Elfogadva3ms2744 KiB
7Elfogadva23ms9016 KiB
8Elfogadva23ms8972 KiB
9Elfogadva23ms8972 KiB
subtask319/19
10Elfogadva3ms2956 KiB
11Elfogadva3ms2984 KiB
12Elfogadva3ms3060 KiB
13Elfogadva3ms3060 KiB
14Elfogadva3ms3052 KiB
15Elfogadva3ms3188 KiB
16Elfogadva3ms3264 KiB
subtask434/34
17Elfogadva3ms3696 KiB
18Elfogadva4ms3744 KiB
19Elfogadva4ms4188 KiB
20Elfogadva4ms4172 KiB
21Elfogadva6ms4272 KiB
22Elfogadva6ms4280 KiB
subtask532/32
23Elfogadva37ms9364 KiB
24Elfogadva43ms10620 KiB
25Elfogadva46ms12052 KiB
26Elfogadva46ms13080 KiB
27Elfogadva46ms14004 KiB
28Elfogadva75ms13728 KiB
29Elfogadva96ms24116 KiB
30Elfogadva93ms24076 KiB
31Elfogadva74ms17384 KiB
32Elfogadva52ms12332 KiB
33Elfogadva89ms23888 KiB
34Elfogadva85ms23840 KiB