#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define f1(i,n) for(int i=1;i<=n;i++)
#define __file_name ""
using namespace std;
const ll maxn=1e6+5, inf=1e18;
struct FenwickTree{
int n;
vector<int> bit;
void init(int n_){
n = n_;
bit.resize(n + 1, 0);
}
void update(int idx, int v){
for(;idx<=n;idx+=idx&-idx) bit[idx] = max(bit[idx], v);
}
int getMax(int idx){
int s = 0;
for(;idx>0;idx-=idx&-idx) s = max(s, bit[idx]);
return s;
}
};
int n, m;
pair<int,int> a[maxn];
bool cmp(pair<int,int> x, pair<int,int> y){
x.second *= -1; y.second *= -1;
return x < y;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
if(fopen(__file_name ".inp", "r")){
freopen(__file_name ".inp", "r", stdin);
freopen(__file_name ".out", "w", stdout);
}
// code here
cin >> n >> m;
f1(i,m) cin >> a[i].first;
f1(i,m) cin >> a[i].second;
f1(i,m) a[i] = {a[i].first + a[i].second, a[i].second - a[i].first};
sort(a+1,a+m+1,cmp);
vector<int> vals;
f1(i,m) vals.push_back(a[i].second);
sort(vals.begin(), vals.end());
vals.erase(unique(vals.begin(), vals.end()), vals.end());
FenwickTree bit;
bit.init(vals.size());
f1(i,m){
int idx = lower_bound(vals.begin(), vals.end(), a[i].second) - vals.begin() + 1;
bit.update(idx, bit.getMax(idx - 1) + 1);
}
cout << bit.getMax(vals.size()) << '\n';
return 0;
}
Compilation message (stderr)
Arcade.cpp: In function 'int main()':
Arcade.cpp:38:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
38 | freopen(__file_name ".inp", "r", stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Arcade.cpp:39:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
39 | freopen(__file_name ".out", "w", stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| # | 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... |