12622022-03-29 12:02:55vandrasNövekvő Ödön és a Másoló Varázslócpp14Time limit exceeded 0/100695ms86904 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] = dp[j-1] + (i-j);
				break;
			}

		}
	}

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

	return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted3ms1932 KiB
2Time limit exceeded656ms2400 KiB
subtask20/5
3Wrong answer39ms6388 KiB
4Accepted41ms8328 KiB
5Accepted46ms10272 KiB
subtask30/10
6Accepted2ms8768 KiB
7Accepted1ms8768 KiB
8Wrong answer1ms8776 KiB
subtask40/15
9Wrong answer2ms8784 KiB
10Wrong answer1ms8788 KiB
11Wrong answer1ms8796 KiB
12Accepted2ms8800 KiB
subtask50/5
13Wrong answer3ms8992 KiB
14Accepted3ms9096 KiB
15Wrong answer4ms9192 KiB
subtask60/5
16Accepted24ms9296 KiB
17Wrong answer14ms9392 KiB
18Wrong answer8ms9492 KiB
19Accepted14ms9600 KiB
subtask70/10
20Wrong answer7ms9668 KiB
21Wrong answer8ms9780 KiB
22Accepted19ms9872 KiB
23Wrong answer6ms9952 KiB
24Wrong answer4ms10032 KiB
subtask80/25
25Time limit exceeded690ms11792 KiB
26Time limit exceeded694ms13728 KiB
27Time limit exceeded675ms15732 KiB
28Accepted1ms15760 KiB
29Time limit exceeded652ms17652 KiB
30Wrong answer76ms21936 KiB
31Wrong answer59ms23876 KiB
32Wrong answer179ms25788 KiB
33Wrong answer416ms27784 KiB
34Wrong answer307ms29680 KiB
35Wrong answer518ms31620 KiB
36Wrong answer190ms33564 KiB
37Wrong answer216ms35512 KiB
38Time limit exceeded694ms35260 KiB
39Time limit exceeded694ms36984 KiB
40Time limit exceeded686ms39172 KiB
41Time limit exceeded695ms41088 KiB
42Wrong answer28ms43528 KiB
43Time limit exceeded667ms44164 KiB
44Wrong answer116ms48304 KiB
45Time limit exceeded694ms48052 KiB
subtask90/25
46Time limit exceeded694ms52776 KiB
47Time limit exceeded694ms56888 KiB
48Wrong answer333ms64148 KiB
49Time limit exceeded689ms64252 KiB
50Time limit exceeded676ms68184 KiB
51Time limit exceeded693ms72108 KiB
52Wrong answer287ms78452 KiB
53Wrong answer586ms82496 KiB
54Time limit exceeded693ms83280 KiB
55Time limit exceeded658ms86904 KiB