Submission #1271334

#TimeUsernameProblemLanguageResultExecution timeMemory
1271334cmiucExhibition (JOI19_ho_t2)C++20
0 / 100
0 ms328 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
int dp[1<<17];

int main(){
	// ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	int n, m, ans = 0;
	cin>>n>>m;

	vector<pair<int,int>> vec(n);
	vector<int> c(m);
	
	for (int i=0;i<n;i++)
		cin>>vec[i].second>>vec[i].first;
	sort(begin(vec), end(vec));

	for (int i=0;i<m;i++)
		cin>>c[i];
	sort(begin(c), end(c));

	for (int i=1;i<=n;i++)
		dp[i] = 2e9;
	dp[0] = -1;

	for (auto [b, a] : vec){
		int k = upper_bound(begin(c), end(c), a - 1) - begin(c);
		int u = upper_bound(dp, dp + n + 1, k) - dp;

		for (int i=n;i>=1;i--){
			if (dp[i] > k and (dp[i] < m or dp[i-1] < k))
				dp[i] = k;
			if (dp[i] < m)
				ans = max(ans, i);
		}
	}
	cout<<ans<<'\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...