#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<ll, ll>
#define fi first
#define sec second
#define ld long double
const int MAXN = 5e5;
const ll INF = 1e18;
const int MOD = 1e9 + 7;
const ld eps = 1e-6;
vector<ll> pos[MAXN + 5];
ll t[MAXN + 5], a[MAXN + 5];
int main(){
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int tc = 1;
// cin >> tc;
for(;tc--;){
ll N, M; cin >> N >> M;
for(int i = 1; i <= M; i++) cin >> t[i];
for(int i = 1; i <= M; i++) cin >> a[i];
vector<pii> intervals;
for(int i = 1; i <= M; i++){
intervals.push_back({a[i] - t[i], a[i] + t[i]});
}
sort(intervals.begin(), intervals.end(), [&](pii x, pii y){
if(x.fi == y.fi) return x.sec > y.sec;
return x.fi < y.fi;
});
set<ll> st;
for(auto [l, r] : intervals){
if(!st.size()){
st.insert(r);
continue;
}
auto x = st.lower_bound(r);
if(x != st.end()) st.erase(x);
st.insert(r);
}
cout << (ll)st.size() << "\n";
}
}
/*
*/
# | 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... |