#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |