12692022-03-29 12:35:23vandrasNövekvő Ödön és a Másoló Varázslócpp14Hibás válasz 5/100697ms69988 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; ++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], n) << '\n';

	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Hibás válasz2ms1896 KiB
2Időlimit túllépés683ms2552 KiB
subtask20/5
3Elfogadva45ms6392 KiB
4Hibás válasz43ms8320 KiB
5Elfogadva43ms10260 KiB
subtask30/10
6Elfogadva1ms8752 KiB
7Hibás válasz1ms8760 KiB
8Hibás válasz1ms8764 KiB
subtask40/15
9Elfogadva1ms8768 KiB
10Hibás válasz1ms8780 KiB
11Hibás válasz1ms8788 KiB
12Hibás válasz1ms8796 KiB
subtask50/5
13Hibás válasz3ms8984 KiB
14Hibás válasz3ms9088 KiB
15Hibás válasz3ms9188 KiB
subtask65/5
16Elfogadva27ms9288 KiB
17Elfogadva25ms9388 KiB
18Elfogadva14ms9488 KiB
19Elfogadva20ms9588 KiB
subtask70/10
20Elfogadva35ms9660 KiB
21Elfogadva32ms9768 KiB
22Hibás válasz39ms9868 KiB
23Elfogadva13ms9940 KiB
24Elfogadva35ms10032 KiB
subtask80/25
25Időlimit túllépés684ms11716 KiB
26Időlimit túllépés666ms13844 KiB
27Időlimit túllépés667ms15644 KiB
28Elfogadva1ms15752 KiB
29Időlimit túllépés679ms17712 KiB
30Időlimit túllépés633ms19512 KiB
31Időlimit túllépés642ms21472 KiB
32Időlimit túllépés611ms18972 KiB
33Időlimit túllépés647ms20904 KiB
34Időlimit túllépés638ms20612 KiB
35Időlimit túllépés606ms22584 KiB
36Időlimit túllépés602ms24532 KiB
37Időlimit túllépés642ms26412 KiB
38Időlimit túllépés691ms28344 KiB
39Időlimit túllépés693ms30200 KiB
40Időlimit túllépés694ms32188 KiB
41Időlimit túllépés689ms34080 KiB
42Időlimit túllépés694ms34972 KiB
43Időlimit túllépés693ms37208 KiB
44Időlimit túllépés697ms39144 KiB
45Időlimit túllépés694ms41012 KiB
subtask90/25
46Időlimit túllépés677ms44904 KiB
47Időlimit túllépés697ms39764 KiB
48Időlimit túllépés694ms43576 KiB
49Időlimit túllépés671ms47444 KiB
50Időlimit túllépés683ms51364 KiB
51Időlimit túllépés694ms55232 KiB
52Időlimit túllépés694ms58452 KiB
53Időlimit túllépés680ms62312 KiB
54Időlimit túllépés691ms66108 KiB
55Időlimit túllépés677ms69988 KiB