161932025-04-14 14:44:23zsomborNövekvő Ödön és a Másoló Varázslócpp17Hibás válasz 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] << " ";*/
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva6ms6196 KiB
2Elfogadva37ms6452 KiB
subtask20/5
3Elfogadva52ms7156 KiB
4Elfogadva52ms7156 KiB
5Hibás válasz52ms6964 KiB
subtask310/10
6Elfogadva7ms6196 KiB
7Elfogadva6ms6196 KiB
8Elfogadva6ms6196 KiB
subtask415/15
9Elfogadva7ms6144 KiB
10Elfogadva6ms6272 KiB
11Elfogadva6ms6116 KiB
12Elfogadva7ms6136 KiB
subtask55/5
13Elfogadva8ms6196 KiB
14Elfogadva8ms6340 KiB
15Elfogadva8ms6196 KiB
subtask65/5
16Elfogadva8ms6196 KiB
17Elfogadva8ms6388 KiB
18Elfogadva8ms6228 KiB
19Elfogadva8ms6196 KiB
subtask710/10
20Elfogadva8ms6336 KiB
21Elfogadva8ms6196 KiB
22Elfogadva9ms6272 KiB
23Elfogadva7ms6328 KiB
24Elfogadva8ms6196 KiB
subtask825/25
25Elfogadva63ms6452 KiB
26Elfogadva61ms6452 KiB
27Elfogadva64ms6704 KiB
28Elfogadva4ms6200 KiB
29Elfogadva86ms6640 KiB
30Elfogadva61ms6588 KiB
31Elfogadva61ms6724 KiB
32Elfogadva63ms6452 KiB
33Elfogadva64ms6568 KiB
34Elfogadva65ms6572 KiB
35Elfogadva67ms6452 KiB
36Elfogadva61ms6708 KiB
37Elfogadva61ms6712 KiB
38Elfogadva68ms6452 KiB
39Elfogadva86ms6708 KiB
40Elfogadva68ms6708 KiB
41Elfogadva68ms6572 KiB
42Elfogadva39ms6588 KiB
43Elfogadva61ms6708 KiB
44Elfogadva61ms6564 KiB
45Elfogadva64ms6572 KiB
subtask925/25
46Elfogadva119ms6964 KiB
47Elfogadva127ms7156 KiB
48Elfogadva118ms6964 KiB
49Elfogadva175ms7080 KiB
50Elfogadva177ms7084 KiB
51Elfogadva177ms7088 KiB
52Elfogadva107ms6964 KiB
53Elfogadva116ms6964 KiB
54Elfogadva125ms7076 KiB
55Elfogadva127ms6964 KiB