12632022-03-29 12:03:20vandrasNövekvő Ödön és a Másoló Varázslócpp14Time limit exceeded 0/100699ms5352 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;
		debug() << exp(a[i]) exp(b[bpos]) exp(bpos);

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

		}
	}

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

	return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted3ms1904 KiB
2Time limit exceeded699ms1820 KiB
subtask20/5
3Wrong answer46ms3716 KiB
4Accepted46ms4044 KiB
5Accepted46ms4052 KiB
subtask30/10
6Accepted2ms2376 KiB
7Accepted2ms2584 KiB
8Wrong answer2ms2712 KiB
subtask40/15
9Wrong answer2ms2796 KiB
10Wrong answer2ms3120 KiB
11Wrong answer2ms3000 KiB
12Accepted2ms2996 KiB
subtask50/5
13Wrong answer4ms3056 KiB
14Accepted4ms3332 KiB
15Wrong answer4ms3256 KiB
subtask60/5
16Accepted43ms3256 KiB
17Wrong answer18ms3252 KiB
18Wrong answer16ms3536 KiB
19Accepted17ms3480 KiB
subtask70/10
20Wrong answer24ms3628 KiB
21Wrong answer27ms3492 KiB
22Accepted50ms3464 KiB
23Wrong answer16ms3432 KiB
24Wrong answer32ms3456 KiB
subtask80/25
25Time limit exceeded663ms3716 KiB
26Time limit exceeded642ms3736 KiB
27Time limit exceeded629ms3628 KiB
28Accepted2ms3684 KiB
29Time limit exceeded699ms3424 KiB
30Time limit exceeded658ms3552 KiB
31Time limit exceeded662ms3676 KiB
32Time limit exceeded662ms3700 KiB
33Time limit exceeded653ms3820 KiB
34Time limit exceeded662ms3820 KiB
35Time limit exceeded677ms3840 KiB
36Time limit exceeded662ms3972 KiB
37Time limit exceeded657ms4188 KiB
38Time limit exceeded674ms4148 KiB
39Time limit exceeded662ms4228 KiB
40Time limit exceeded674ms4452 KiB
41Time limit exceeded657ms4548 KiB
42Time limit exceeded657ms4108 KiB
43Time limit exceeded681ms4252 KiB
44Time limit exceeded683ms4380 KiB
45Time limit exceeded674ms4312 KiB
subtask90/25
46Time limit exceeded638ms5232 KiB
47Time limit exceeded671ms5048 KiB
48Time limit exceeded658ms5192 KiB
49Time limit exceeded657ms4976 KiB
50Time limit exceeded666ms5196 KiB
51Time limit exceeded671ms5124 KiB
52Time limit exceeded666ms5060 KiB
53Time limit exceeded665ms5188 KiB
54Time limit exceeded666ms5204 KiB
55Time limit exceeded666ms5352 KiB