12642022-03-29 12:04:10vandrasNövekvő Ödön és a Másoló Varázslócpp14Time limit exceeded 0/100695ms73524 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;

		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
1Accepted3ms1980 KiB
2Time limit exceeded635ms2568 KiB
subtask20/5
3Wrong answer43ms6492 KiB
4Accepted43ms8436 KiB
5Accepted43ms10392 KiB
subtask30/10
6Accepted2ms8824 KiB
7Accepted1ms8828 KiB
8Wrong answer1ms8832 KiB
subtask40/15
9Wrong answer1ms8844 KiB
10Wrong answer2ms8844 KiB
11Wrong answer2ms8828 KiB
12Accepted2ms8836 KiB
subtask50/5
13Wrong answer3ms9036 KiB
14Accepted3ms9168 KiB
15Wrong answer3ms9256 KiB
subtask60/5
16Accepted39ms9384 KiB
17Wrong answer35ms9496 KiB
18Wrong answer14ms9584 KiB
19Accepted21ms9664 KiB
subtask70/10
20Wrong answer41ms9776 KiB
21Wrong answer43ms9864 KiB
22Accepted68ms9976 KiB
23Wrong answer28ms9980 KiB
24Wrong answer67ms10128 KiB
subtask80/25
25Time limit exceeded634ms11820 KiB
26Time limit exceeded610ms13760 KiB
27Time limit exceeded602ms15760 KiB
28Accepted1ms15816 KiB
29Time limit exceeded666ms17640 KiB
30Time limit exceeded691ms19628 KiB
31Time limit exceeded665ms21556 KiB
32Time limit exceeded693ms23496 KiB
33Time limit exceeded688ms25368 KiB
34Time limit exceeded694ms27312 KiB
35Time limit exceeded663ms29276 KiB
36Time limit exceeded690ms31196 KiB
37Time limit exceeded619ms33128 KiB
38Time limit exceeded695ms35048 KiB
39Time limit exceeded629ms36992 KiB
40Time limit exceeded660ms38848 KiB
41Time limit exceeded671ms40804 KiB
42Time limit exceeded695ms41820 KiB
43Time limit exceeded683ms43908 KiB
44Time limit exceeded675ms45848 KiB
45Time limit exceeded695ms47968 KiB
subtask90/25
46Time limit exceeded690ms52488 KiB
47Time limit exceeded694ms56360 KiB
48Time limit exceeded691ms60228 KiB
49Time limit exceeded695ms64104 KiB
50Time limit exceeded694ms67984 KiB
51Time limit exceeded694ms71920 KiB
52Time limit exceeded677ms73524 KiB
53Time limit exceeded670ms62288 KiB
54Time limit exceeded694ms66208 KiB
55Time limit exceeded677ms70036 KiB