Submission #1226461

#TimeUsernameProblemLanguageResultExecution timeMemory
1226461chaeryeongArcade (NOI20_arcade)C++20
100 / 100
188 ms11672 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; /* t[j] - t[i] >= abs(a[i] - a[j]) t[j] - t[i] >= a[i] - a[j] and t[j] - t[i] >= a[j] - a[i] t[j] + a[j] >= t[i] + a[i] and t[j] - a[j] >= t[i] - a[i] */ const int M = 5e5 + 25; int n, m; array <ll, 2> a[M]; int vis[M]; void solve () { cin >> n >> m; for (int i = 1; i <= m; i++) { cin >> a[i][0]; } for (int i = 1; i <= m; i++) { cin >> a[i][1]; } sort(a + 1, a + m + 1); for (int i = 1; i <= m; i++) { a[i] = {a[i][0] - a[i][1], a[i][0] + a[i][1]}; } sort(a + 1, a + m + 1); vector <int> c; for (int i = 1; i <= m; i++) { c.push_back(a[i][1]); } set <int> ee; for (auto i : c) { auto g = ee.lower_bound(i + 1); if (g == ee.begin()) { ee.insert(i); } else { g--; ee.erase(g); ee.insert(i); } } cout << (int)ee.size() << '\n'; } signed main () { ios::sync_with_stdio(0); cin.tie(0); int tc = 1; //cin >> tc; while (tc--) solve(); }
#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...