12642022-03-29 12:04:10vandrasNövekvő Ödön és a Másoló Varázslócpp14Időlimit túllépés 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1980 KiB
2Időlimit túllépés635ms2568 KiB
subtask20/5
3Hibás válasz43ms6492 KiB
4Elfogadva43ms8436 KiB
5Elfogadva43ms10392 KiB
subtask30/10
6Elfogadva2ms8824 KiB
7Elfogadva1ms8828 KiB
8Hibás válasz1ms8832 KiB
subtask40/15
9Hibás válasz1ms8844 KiB
10Hibás válasz2ms8844 KiB
11Hibás válasz2ms8828 KiB
12Elfogadva2ms8836 KiB
subtask50/5
13Hibás válasz3ms9036 KiB
14Elfogadva3ms9168 KiB
15Hibás válasz3ms9256 KiB
subtask60/5
16Elfogadva39ms9384 KiB
17Hibás válasz35ms9496 KiB
18Hibás válasz14ms9584 KiB
19Elfogadva21ms9664 KiB
subtask70/10
20Hibás válasz41ms9776 KiB
21Hibás válasz43ms9864 KiB
22Elfogadva68ms9976 KiB
23Hibás válasz28ms9980 KiB
24Hibás válasz67ms10128 KiB
subtask80/25
25Időlimit túllépés634ms11820 KiB
26Időlimit túllépés610ms13760 KiB
27Időlimit túllépés602ms15760 KiB
28Elfogadva1ms15816 KiB
29Időlimit túllépés666ms17640 KiB
30Időlimit túllépés691ms19628 KiB
31Időlimit túllépés665ms21556 KiB
32Időlimit túllépés693ms23496 KiB
33Időlimit túllépés688ms25368 KiB
34Időlimit túllépés694ms27312 KiB
35Időlimit túllépés663ms29276 KiB
36Időlimit túllépés690ms31196 KiB
37Időlimit túllépés619ms33128 KiB
38Időlimit túllépés695ms35048 KiB
39Időlimit túllépés629ms36992 KiB
40Időlimit túllépés660ms38848 KiB
41Időlimit túllépés671ms40804 KiB
42Időlimit túllépés695ms41820 KiB
43Időlimit túllépés683ms43908 KiB
44Időlimit túllépés675ms45848 KiB
45Időlimit túllépés695ms47968 KiB
subtask90/25
46Időlimit túllépés690ms52488 KiB
47Időlimit túllépés694ms56360 KiB
48Időlimit túllépés691ms60228 KiB
49Időlimit túllépés695ms64104 KiB
50Időlimit túllépés694ms67984 KiB
51Időlimit túllépés694ms71920 KiB
52Időlimit túllépés677ms73524 KiB
53Időlimit túllépés670ms62288 KiB
54Időlimit túllépés694ms66208 KiB
55Időlimit túllépés677ms70036 KiB