12672022-03-29 12:32:25vandrasNövekvő Ödön és a Másoló Varázslócpp14Time limit exceeded 50/100697ms64436 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+1; ++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], dp[n+1]) << '\n';

	return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted2ms1944 KiB
2Time limit exceeded652ms2580 KiB
subtask25/5
3Accepted43ms6484 KiB
4Accepted41ms8428 KiB
5Accepted41ms10400 KiB
subtask310/10
6Accepted1ms8816 KiB
7Accepted1ms8820 KiB
8Accepted1ms8804 KiB
subtask415/15
9Accepted1ms8812 KiB
10Accepted1ms8816 KiB
11Accepted1ms8852 KiB
12Accepted2ms8868 KiB
subtask55/5
13Accepted3ms9044 KiB
14Accepted3ms9144 KiB
15Accepted3ms9236 KiB
subtask65/5
16Accepted27ms9396 KiB
17Accepted25ms9488 KiB
18Accepted14ms9596 KiB
19Accepted21ms9664 KiB
subtask710/10
20Accepted37ms9768 KiB
21Accepted32ms9880 KiB
22Accepted39ms9968 KiB
23Accepted13ms9992 KiB
24Accepted32ms10128 KiB
subtask80/25
25Time limit exceeded609ms11960 KiB
26Time limit exceeded611ms13892 KiB
27Time limit exceeded642ms15808 KiB
28Accepted1ms15788 KiB
29Time limit exceeded615ms17632 KiB
30Time limit exceeded669ms19696 KiB
31Time limit exceeded676ms21552 KiB
32Time limit exceeded689ms23452 KiB
33Time limit exceeded693ms25420 KiB
34Time limit exceeded694ms27252 KiB
35Time limit exceeded657ms29296 KiB
36Time limit exceeded697ms31196 KiB
37Time limit exceeded694ms33132 KiB
38Time limit exceeded693ms35056 KiB
39Time limit exceeded693ms36928 KiB
40Time limit exceeded695ms38856 KiB
41Time limit exceeded690ms40856 KiB
42Time limit exceeded691ms41668 KiB
43Time limit exceeded695ms44040 KiB
44Time limit exceeded683ms45908 KiB
45Time limit exceeded693ms47852 KiB
subtask90/25
46Time limit exceeded680ms52492 KiB
47Time limit exceeded677ms54468 KiB
48Time limit exceeded677ms48016 KiB
49Time limit exceeded674ms51960 KiB
50Time limit exceeded670ms55896 KiB
51Time limit exceeded697ms59716 KiB
52Time limit exceeded676ms56064 KiB
53Time limit exceeded690ms56620 KiB
54Time limit exceeded693ms60604 KiB
55Time limit exceeded601ms64436 KiB