Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- constexpr int N = 1e5 + 5;
- pair<int, int> a[N], b[N];
- int n, m, q, id[N];
- void Read()
- {
- cin >> n >> m >> q;
- for (int i = 1; i <= n; ++i)
- cin >> a[i].first;
- for (int i = 1; i <= n; ++i)
- cin >> a[i].second;
- for (int i = 1; i <= m; ++i)
- cin >> b[id[i] = i].first;
- for (int i = 1; i <= m; ++i)
- cin >> b[i].second;
- }
- void Solve()
- {
- sort(a + 1, a + n + 1);
- while (q--)
- {
- int k;
- cin >> k;
- sort(id + k, id + k + n, [&](const int &x, const int &y)
- { return b[x] < b[y]; });
- multiset<int> s;
- int ans(0);
- for (int i = 1, j = k; i <= n; ++i)
- {
- while (j < k + n && b[id[j]].first < a[i].first)
- {
- s.insert(b[id[j]].second);
- //cerr << "jump: " << i << " " << j << "\n";
- ++j;
- }
- auto t = s.lower_bound(a[i].second);
- if (t != s.begin())
- {
- ++ans;
- s.erase(prev(t));
- }
- }
- cout << ans << '\n';
- for (int j = k + n - 1; j >= k; --j)
- id[j] = j;
- }
- }
- int32_t main()
- {
- ios::sync_with_stdio(0);
- cin.tie(0);
- cout.tie(0);
- Read();
- Solve();
- }
Advertisement
Add Comment
Please, Sign In to add comment