12632022-03-29 12:03:20vandrasNövekvő Ödön és a Másoló Varázslócpp14Időlimit túllépés 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1904 KiB
2Időlimit túllépés699ms1820 KiB
subtask20/5
3Hibás válasz46ms3716 KiB
4Elfogadva46ms4044 KiB
5Elfogadva46ms4052 KiB
subtask30/10
6Elfogadva2ms2376 KiB
7Elfogadva2ms2584 KiB
8Hibás válasz2ms2712 KiB
subtask40/15
9Hibás válasz2ms2796 KiB
10Hibás válasz2ms3120 KiB
11Hibás válasz2ms3000 KiB
12Elfogadva2ms2996 KiB
subtask50/5
13Hibás válasz4ms3056 KiB
14Elfogadva4ms3332 KiB
15Hibás válasz4ms3256 KiB
subtask60/5
16Elfogadva43ms3256 KiB
17Hibás válasz18ms3252 KiB
18Hibás válasz16ms3536 KiB
19Elfogadva17ms3480 KiB
subtask70/10
20Hibás válasz24ms3628 KiB
21Hibás válasz27ms3492 KiB
22Elfogadva50ms3464 KiB
23Hibás válasz16ms3432 KiB
24Hibás válasz32ms3456 KiB
subtask80/25
25Időlimit túllépés663ms3716 KiB
26Időlimit túllépés642ms3736 KiB
27Időlimit túllépés629ms3628 KiB
28Elfogadva2ms3684 KiB
29Időlimit túllépés699ms3424 KiB
30Időlimit túllépés658ms3552 KiB
31Időlimit túllépés662ms3676 KiB
32Időlimit túllépés662ms3700 KiB
33Időlimit túllépés653ms3820 KiB
34Időlimit túllépés662ms3820 KiB
35Időlimit túllépés677ms3840 KiB
36Időlimit túllépés662ms3972 KiB
37Időlimit túllépés657ms4188 KiB
38Időlimit túllépés674ms4148 KiB
39Időlimit túllépés662ms4228 KiB
40Időlimit túllépés674ms4452 KiB
41Időlimit túllépés657ms4548 KiB
42Időlimit túllépés657ms4108 KiB
43Időlimit túllépés681ms4252 KiB
44Időlimit túllépés683ms4380 KiB
45Időlimit túllépés674ms4312 KiB
subtask90/25
46Időlimit túllépés638ms5232 KiB
47Időlimit túllépés671ms5048 KiB
48Időlimit túllépés658ms5192 KiB
49Időlimit túllépés657ms4976 KiB
50Időlimit túllépés666ms5196 KiB
51Időlimit túllépés671ms5124 KiB
52Időlimit túllépés666ms5060 KiB
53Időlimit túllépés665ms5188 KiB
54Időlimit túllépés666ms5204 KiB
55Időlimit túllépés666ms5352 KiB