Submission #1264497

#TimeUsernameProblemLanguageResultExecution timeMemory
1264497goulthenArcade (NOI20_arcade)C++20
100 / 100
113 ms8392 KiB
#include <bits/stdc++.h>
using namespace std;

#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,a,b) for(int i=a;i>=b;--i)
#define pii pair<int, int>
#define pb push_back

const int MAXN = 5e5 + 10;
pii v[MAXN];
int t[MAXN], a[MAXN];

int32_t main(){
	ios::sync_with_stdio(0);cin.tie(0);
	int n,m; cin >> n >> m;
	rep(i,1,m) cin >> t[i];
	rep(i,1,m) cin >> a[i];
	rep(i,1,m) v[i] = {t[i] + a[i], -(a[i]-t[i]+m)};
	sort(v+1,v+m+1);

	vector<int> dp;
	rep(i,1,m) {
		int pos = lower_bound(dp.begin(), dp.end(), -v[i].second) - dp.begin();
		if (pos == dp.size()) dp.pb(-v[i].second);
		else dp[pos] = -v[i].second;
	}

	cout << dp.size() << '\n';
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...