제출 #1331123

#제출 시각아이디문제언어결과실행 시간메모리
1331123tkm_algorithmsExhibition (JOI19_ho_t2)C++20
50 / 100
1095 ms4308 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;
#define int ll
using P = pair<int, int>;
#define all(x) x.begin(), x.end()
#define rep(i, l, n) for (int i = l; i < (n); ++i)
#define sz(x) (int)x.size()
const char nl = '\n';
const int mod = 998244353;

void solve() {
	int n, m; cin >> n >> m;
	vector<P> a(n);
	for (auto &i: a)cin >> i.second >> i.first;
	vector<int> b(m);
	for (auto &i: b)cin >> i;
	sort(all(a));
	sort(all(b));
	
	vector<int> dp(m), dp2(m);
	rep(i, 0, n) {
		int lb = lower_bound(all(b), a[i].second) - b.begin();
		if (lb < sz(b)) {
			int mx = 0;
			rep(j, 0, lb)
				mx = max(mx, dp[j]);
			rep(j, lb, m) {
				int b = max(mx, dp[j]);
				dp[j] = max(dp[j], mx+1);
				mx = b;
			}
			//dp[lb] = max(dp[lb], mx+1);
		}
	}
	cout << *max_element(all(dp));
}

int32_t main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    solve();
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...