161922025-04-14 14:40:04zsomborNövekvő Ödön és a Másoló Varázslócpp17Hibás válasz 5/100152ms7276 KiB
// Növekvő Ödön és a Másoló Varázsló.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int n, m, ans = 1e9;
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]--;
	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());
	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
2Hibás válasz35ms6452 KiB
subtask20/5
3Elfogadva52ms6964 KiB
4Elfogadva52ms7040 KiB
5Hibás válasz52ms6964 KiB
subtask30/10
6Hibás válasz6ms6196 KiB
7Hibás válasz7ms6196 KiB
8Elfogadva7ms6196 KiB
subtask40/15
9Elfogadva7ms6196 KiB
10Hibás válasz7ms6196 KiB
11Elfogadva7ms6196 KiB
12Hibás válasz6ms6392 KiB
subtask55/5
13Elfogadva7ms6196 KiB
14Elfogadva8ms6392 KiB
15Elfogadva8ms6408 KiB
subtask60/5
16Hibás válasz8ms6336 KiB
17Hibás válasz8ms6196 KiB
18Hibás válasz8ms6196 KiB
19Hibás válasz8ms6388 KiB
subtask70/10
20Elfogadva8ms6336 KiB
21Elfogadva8ms6088 KiB
22Hibás válasz8ms6264 KiB
23Elfogadva7ms6100 KiB
24Hibás válasz8ms6196 KiB
subtask80/25
25Hibás válasz59ms6452 KiB
26Elfogadva59ms6452 KiB
27Elfogadva57ms6572 KiB
28Elfogadva4ms6196 KiB
29Hibás válasz75ms6708 KiB
30Elfogadva57ms6452 KiB
31Elfogadva57ms6584 KiB
32Elfogadva59ms6452 KiB
33Elfogadva59ms6452 KiB
34Elfogadva59ms6452 KiB
35Elfogadva61ms6452 KiB
36Elfogadva57ms6452 KiB
37Elfogadva57ms6452 KiB
38Elfogadva61ms6452 KiB
39Hibás válasz75ms6452 KiB
40Hibás válasz61ms6704 KiB
41Elfogadva61ms6708 KiB
42Elfogadva37ms6452 KiB
43Elfogadva57ms6592 KiB
44Elfogadva57ms6452 KiB
45Elfogadva59ms6700 KiB
subtask90/25
46Elfogadva111ms7096 KiB
47Elfogadva115ms7276 KiB
48Elfogadva109ms7108 KiB
49Hibás válasz152ms7080 KiB
50Hibás válasz150ms7080 KiB
51Hibás válasz150ms7088 KiB
52Elfogadva101ms6964 KiB
53Elfogadva108ms7032 KiB
54Hibás válasz116ms6964 KiB
55Hibás válasz115ms6964 KiB