Submission #1314651

#TimeUsernameProblemLanguageResultExecution timeMemory
1314651joshjuiceArcade (NOI20_arcade)C++20
100 / 100
124 ms8500 KiB
#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 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...