161932025-04-14 14:44:23zsomborNövekvő Ödön és a Másoló Varázslócpp17Wrong answer 95/100177ms7156 KiB
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int n, m, ans;
vector <int> a(5e5, 0);
vector <int> b;
vector <int> dp(5e5, 1e9);
vector <int> f(5e5, 1e9);

int gr(int x) {
	return b.end() - lower_bound(b.begin(), b.end(), x);
}

int pos(int k) {
	return n + m - k - gr(a[k]);
}

void update(int k) {
	int x = pos(k);
	for (int i = x; i < f.size(); i = (i | (i + 1))) f[i] = min(f[i], dp[k]);
}

void query(int k) {
	int x = pos(k) + 1;
	for (int i = x; i >= 0; i = (i & (i + 1)) - 1) dp[k] = min(dp[k], f[i]);
	dp[k]--;
	if (gr(a[k]) >= n - k) ans = min(ans, dp[k]);
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cin >> n >> m;
	for (int i = 1; i <= n; i++) cin >> a[i];
	b.resize(m);
	for (int& i : b) cin >> i;
	sort(b.begin(), b.end());
	ans = m;
	dp[0] = n;
	for (int i = 1; i <= n; i++) {
		if (a[i - 1] < a[i]) dp[i] = dp[i - 1];
		query(i);
		update(i - 1);
	}
	cout << ans << "\n";
	/*for (int i = 0; i <= n; i++) cout << pos(i) << " ";
	cout << "\n";
	for (int i = 0; i <= n; i++) cout << dp[i] << " ";*/
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted6ms6196 KiB
2Accepted37ms6452 KiB
subtask20/5
3Accepted52ms7156 KiB
4Accepted52ms7156 KiB
5Wrong answer52ms6964 KiB
subtask310/10
6Accepted7ms6196 KiB
7Accepted6ms6196 KiB
8Accepted6ms6196 KiB
subtask415/15
9Accepted7ms6144 KiB
10Accepted6ms6272 KiB
11Accepted6ms6116 KiB
12Accepted7ms6136 KiB
subtask55/5
13Accepted8ms6196 KiB
14Accepted8ms6340 KiB
15Accepted8ms6196 KiB
subtask65/5
16Accepted8ms6196 KiB
17Accepted8ms6388 KiB
18Accepted8ms6228 KiB
19Accepted8ms6196 KiB
subtask710/10
20Accepted8ms6336 KiB
21Accepted8ms6196 KiB
22Accepted9ms6272 KiB
23Accepted7ms6328 KiB
24Accepted8ms6196 KiB
subtask825/25
25Accepted63ms6452 KiB
26Accepted61ms6452 KiB
27Accepted64ms6704 KiB
28Accepted4ms6200 KiB
29Accepted86ms6640 KiB
30Accepted61ms6588 KiB
31Accepted61ms6724 KiB
32Accepted63ms6452 KiB
33Accepted64ms6568 KiB
34Accepted65ms6572 KiB
35Accepted67ms6452 KiB
36Accepted61ms6708 KiB
37Accepted61ms6712 KiB
38Accepted68ms6452 KiB
39Accepted86ms6708 KiB
40Accepted68ms6708 KiB
41Accepted68ms6572 KiB
42Accepted39ms6588 KiB
43Accepted61ms6708 KiB
44Accepted61ms6564 KiB
45Accepted64ms6572 KiB
subtask925/25
46Accepted119ms6964 KiB
47Accepted127ms7156 KiB
48Accepted118ms6964 KiB
49Accepted175ms7080 KiB
50Accepted177ms7084 KiB
51Accepted177ms7088 KiB
52Accepted107ms6964 KiB
53Accepted116ms6964 KiB
54Accepted125ms7076 KiB
55Accepted127ms6964 KiB