Submission #1216951

#TimeUsernameProblemLanguageResultExecution timeMemory
1216951stdfloatExhibition (JOI19_ho_t2)C++20
50 / 100
1095 ms2372 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

#define ff  first
#define ss  second
#define pii pair<int, int>

#define sz(v)	(int)(v).size()
#define all(v)	(v).begin(), (v).end()

int main() {
	ios::sync_with_stdio(false); cin.tie(nullptr);

	int n, m;
	cin >> n >> m;

	pii p[n];
	for (int i = 0; i < n; i++)
		cin >> p[i].ss >> p[i].ff;

	sort(p, p + n);

	vector<int> c(m);
	for (auto &i : c)
		cin >> i;

	sort(all(c));

	vector<int> dp(m, m);
	for (int i = 0; i < n; i++) {
		vector<int> ndp = dp;
		ndp[0] = min(dp[0], int(lower_bound(all(c), p[i].ss) - c.begin()));
		for (int j = 1; j < m; j++)
			if (dp[j - 1] + 1 < m) ndp[j] = min(dp[j], int(lower_bound(dp[j - 1] + 1 + all(c), p[i].ss) - c.begin()));
	
		dp = ndp;
	}

	for (int i = m - 1; i >= -1; i--)
		if (!~i || dp[i] != m) return cout << i + 1, 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...