12672022-03-29 12:32:25vandrasNövekvő Ödön és a Másoló Varázslócpp14Időlimit túllépés 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva2ms1944 KiB
2Időlimit túllépés652ms2580 KiB
subtask25/5
3Elfogadva43ms6484 KiB
4Elfogadva41ms8428 KiB
5Elfogadva41ms10400 KiB
subtask310/10
6Elfogadva1ms8816 KiB
7Elfogadva1ms8820 KiB
8Elfogadva1ms8804 KiB
subtask415/15
9Elfogadva1ms8812 KiB
10Elfogadva1ms8816 KiB
11Elfogadva1ms8852 KiB
12Elfogadva2ms8868 KiB
subtask55/5
13Elfogadva3ms9044 KiB
14Elfogadva3ms9144 KiB
15Elfogadva3ms9236 KiB
subtask65/5
16Elfogadva27ms9396 KiB
17Elfogadva25ms9488 KiB
18Elfogadva14ms9596 KiB
19Elfogadva21ms9664 KiB
subtask710/10
20Elfogadva37ms9768 KiB
21Elfogadva32ms9880 KiB
22Elfogadva39ms9968 KiB
23Elfogadva13ms9992 KiB
24Elfogadva32ms10128 KiB
subtask80/25
25Időlimit túllépés609ms11960 KiB
26Időlimit túllépés611ms13892 KiB
27Időlimit túllépés642ms15808 KiB
28Elfogadva1ms15788 KiB
29Időlimit túllépés615ms17632 KiB
30Időlimit túllépés669ms19696 KiB
31Időlimit túllépés676ms21552 KiB
32Időlimit túllépés689ms23452 KiB
33Időlimit túllépés693ms25420 KiB
34Időlimit túllépés694ms27252 KiB
35Időlimit túllépés657ms29296 KiB
36Időlimit túllépés697ms31196 KiB
37Időlimit túllépés694ms33132 KiB
38Időlimit túllépés693ms35056 KiB
39Időlimit túllépés693ms36928 KiB
40Időlimit túllépés695ms38856 KiB
41Időlimit túllépés690ms40856 KiB
42Időlimit túllépés691ms41668 KiB
43Időlimit túllépés695ms44040 KiB
44Időlimit túllépés683ms45908 KiB
45Időlimit túllépés693ms47852 KiB
subtask90/25
46Időlimit túllépés680ms52492 KiB
47Időlimit túllépés677ms54468 KiB
48Időlimit túllépés677ms48016 KiB
49Időlimit túllépés674ms51960 KiB
50Időlimit túllépés670ms55896 KiB
51Időlimit túllépés697ms59716 KiB
52Időlimit túllépés676ms56064 KiB
53Időlimit túllépés690ms56620 KiB
54Időlimit túllépés693ms60604 KiB
55Időlimit túllépés601ms64436 KiB