#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
#define ppf pop_front
#define ppb pop_back
#define pf push_front
#define pb push_back
#define fr first
#define sc second
#define mnto(x,y) x = min(x, (__typeof__(x))y)
#define mxto(x,y) x = max(x, (__typeof__(x))y)
#define setval(arr, x) memset(arr, x, sizeof(arr))
int main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int n, m;
cin >> n >> m;
int t[m], a[m];
for (int i = 0; i < m; ++i) cin >> t[i];
for (int i = 0; i < m; ++i) cin >> a[i];
vector<pair<int, int>> time(m);
for (int i = 0; i < m; ++i) time[i] = {t[i] + a[i], t[i] - a[i] - m};
sort(time.begin(), time.end());
vector<int> lis;
for (auto &e : time) {
auto it = lower_bound(lis.begin(), lis.end(), -e.sc);
if (it == lis.end()) lis.pb(-e.sc);
else *it = -e.sc;
}
cout << lis.size();
}
| # | 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... |