12692022-03-29 12:35:23vandrasNövekvő Ödön és a Másoló Varázslócpp14Wrong answer 5/100697ms69988 KiB
#include <bits/stdc++.h>
using namespace std;

/*<DEBUG>*/
#define tem template <typename 
#define can_shift(_X_, ...) enable_if_t<sizeof test<_X_>(0) __VA_ARGS__ 8, debug&> operator<<(T i)
#define _op debug& operator<<
tem C > auto test(C *x) -> decltype(cerr << *x, 0LL);
tem C > char test(...);
tem C > struct itr{C begin, end; };
tem C > itr<C> get_range(C b, C e) { return itr<C>{b, e}; }
struct debug{
#ifdef _LOCAL
	~debug(){ cerr << endl; }
	tem T > can_shift(T, ==){ cerr << boolalpha << i; return *this; }
	tem T> can_shift(T, !=){ return *this << get_range(begin(i), end(i)); }
	tem T, typename U > _op (pair<T, U> i){ 
		return *this << "< " << i.first << " , " << i.second << " >"; }
	tem T> _op (itr<T> i){
		*this <<  "{ ";
		for(auto it = i.begin; it != i.end; it++){
			*this << " , " + (it==i.begin?2:0) << *it;
		}
		return *this << " }";
	}
#else
tem T> _op (const T&) { return *this; }
#endif 
};

tem T>
string _ARR_(T* arr, int sz){
	string ret = "{ " + to_string(arr[0]); 
	for(int i = 1; i < sz; i++) ret += " , " +  to_string(arr[i]);
	ret += " }"; return ret;
}

#define exp(...) " [ " << #__VA_ARGS__ << " : " << (__VA_ARGS__) << " ]"
/*</DEBUG>*/

typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef unsigned int uint;
typedef pair<int, int> pii;
//mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());

#define pb push_back
#define FAST ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define TC int __TC__; cin >> __TC__; while(__TC__--)
#define ar array

const int INF = 1e9 + 7, N = 200005, M = 5003;

int a[N], b[N], n, m, dp[N];

int main()
{
	FAST;
	cin >> n >> m;
	for(int i = 1; i <= n; ++i){
		cin >> a[i];
	}
	for(int i = 1; i <= m; ++i){
		cin >> b[i];
	}

	sort(b+1, b+m+1);

	//dp[i] : best solution up to ith element (ith is left unchanged)

	a[0] = -1;
	a[n+1] = INF;

	dp[0] = 0;
	dp[1] = 0;

	for(int i = 2; i <= n; ++i){
		dp[i] = INF;
		int bpos = lower_bound(b+1, b+m+1, a[i])-b-1;


		if(a[i-1] < a[i]){
			dp[i] = dp[i-1];
		}

		for(int j = i-1; j > 0 && bpos > 0; --j, --bpos){
			if(a[j-1] < b[bpos]){
				dp[i] = min(dp[i], dp[j-1] + (i-j));
			}
		}
	}

	cout << min(dp[n], n) << '\n';

	return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Wrong answer2ms1896 KiB
2Time limit exceeded683ms2552 KiB
subtask20/5
3Accepted45ms6392 KiB
4Wrong answer43ms8320 KiB
5Accepted43ms10260 KiB
subtask30/10
6Accepted1ms8752 KiB
7Wrong answer1ms8760 KiB
8Wrong answer1ms8764 KiB
subtask40/15
9Accepted1ms8768 KiB
10Wrong answer1ms8780 KiB
11Wrong answer1ms8788 KiB
12Wrong answer1ms8796 KiB
subtask50/5
13Wrong answer3ms8984 KiB
14Wrong answer3ms9088 KiB
15Wrong answer3ms9188 KiB
subtask65/5
16Accepted27ms9288 KiB
17Accepted25ms9388 KiB
18Accepted14ms9488 KiB
19Accepted20ms9588 KiB
subtask70/10
20Accepted35ms9660 KiB
21Accepted32ms9768 KiB
22Wrong answer39ms9868 KiB
23Accepted13ms9940 KiB
24Accepted35ms10032 KiB
subtask80/25
25Time limit exceeded684ms11716 KiB
26Time limit exceeded666ms13844 KiB
27Time limit exceeded667ms15644 KiB
28Accepted1ms15752 KiB
29Time limit exceeded679ms17712 KiB
30Time limit exceeded633ms19512 KiB
31Time limit exceeded642ms21472 KiB
32Time limit exceeded611ms18972 KiB
33Time limit exceeded647ms20904 KiB
34Time limit exceeded638ms20612 KiB
35Time limit exceeded606ms22584 KiB
36Time limit exceeded602ms24532 KiB
37Time limit exceeded642ms26412 KiB
38Time limit exceeded691ms28344 KiB
39Time limit exceeded693ms30200 KiB
40Time limit exceeded694ms32188 KiB
41Time limit exceeded689ms34080 KiB
42Time limit exceeded694ms34972 KiB
43Time limit exceeded693ms37208 KiB
44Time limit exceeded697ms39144 KiB
45Time limit exceeded694ms41012 KiB
subtask90/25
46Time limit exceeded677ms44904 KiB
47Time limit exceeded697ms39764 KiB
48Time limit exceeded694ms43576 KiB
49Time limit exceeded671ms47444 KiB
50Time limit exceeded683ms51364 KiB
51Time limit exceeded694ms55232 KiB
52Time limit exceeded694ms58452 KiB
53Time limit exceeded680ms62312 KiB
54Time limit exceeded691ms66108 KiB
55Time limit exceeded677ms69988 KiB