161942025-04-14 14:45:41zsomborNövekvő Ödön és a Másoló Varázslócpp17Elfogadva 100/100177ms7100 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 = n;
	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] << " ";*/
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva4ms6196 KiB
2Elfogadva39ms6452 KiB
subtask25/5
3Elfogadva52ms6968 KiB
4Elfogadva52ms6964 KiB
5Elfogadva52ms6964 KiB
subtask310/10
6Elfogadva7ms6196 KiB
7Elfogadva6ms6196 KiB
8Elfogadva6ms6196 KiB
subtask415/15
9Elfogadva6ms6196 KiB
10Elfogadva7ms6196 KiB
11Elfogadva7ms6140 KiB
12Elfogadva6ms6196 KiB
subtask55/5
13Elfogadva8ms6140 KiB
14Elfogadva8ms6196 KiB
15Elfogadva8ms6196 KiB
subtask65/5
16Elfogadva8ms6196 KiB
17Elfogadva8ms6196 KiB
18Elfogadva8ms6144 KiB
19Elfogadva8ms6340 KiB
subtask710/10
20Elfogadva8ms6196 KiB
21Elfogadva8ms6196 KiB
22Elfogadva8ms6196 KiB
23Elfogadva8ms6284 KiB
24Elfogadva8ms6196 KiB
subtask825/25
25Elfogadva61ms6620 KiB
26Elfogadva63ms6568 KiB
27Elfogadva63ms6704 KiB
28Elfogadva6ms6108 KiB
29Elfogadva86ms6708 KiB
30Elfogadva63ms6452 KiB
31Elfogadva63ms6452 KiB
32Elfogadva61ms6704 KiB
33Elfogadva64ms6596 KiB
34Elfogadva64ms6708 KiB
35Elfogadva68ms6572 KiB
36Elfogadva61ms6452 KiB
37Elfogadva63ms6452 KiB
38Elfogadva68ms6456 KiB
39Elfogadva87ms6452 KiB
40Elfogadva68ms6452 KiB
41Elfogadva67ms6708 KiB
42Elfogadva39ms6596 KiB
43Elfogadva61ms6452 KiB
44Elfogadva61ms6452 KiB
45Elfogadva64ms6568 KiB
subtask925/25
46Elfogadva119ms6960 KiB
47Elfogadva125ms7080 KiB
48Elfogadva119ms6964 KiB
49Elfogadva177ms6964 KiB
50Elfogadva177ms7100 KiB
51Elfogadva175ms7084 KiB
52Elfogadva105ms7084 KiB
53Elfogadva118ms6964 KiB
54Elfogadva123ms6964 KiB
55Elfogadva127ms6964 KiB