제출 #1216903

#제출 시각아이디문제언어결과실행 시간메모리
1216903stdfloatExhibition (JOI19_ho_t2)C++20
0 / 100
0 ms328 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));

	pii dp[n];
	int mx = 0;	
	for (int i = 0; i < n && p[i].ss <= c[m - 1]; i++) {
		dp[i].ff = 1; dp[i].ss = lower_bound(all(c), p[i].ss) - c.begin();

		for (int j = 0; j < i; j++) {
			if (dp[j].ss + 1 < m) {
				int t = lower_bound(dp[j].ss + 1 + all(c), p[i].ss) - c.begin();
				if (dp[j].ff + 1 > dp[i].ff || (dp[j].ff + 1 == dp[i].ff && t < dp[i].ss)) {
					dp[i].ff = dp[j].ff + 1; dp[i].ss = t;
				}
			}
		}

		mx = max(mx, dp[i].ff);
	}

	cout << mx;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...