Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <iostream>
- #include <algorithm>
- using namespace std;
- long long k, n, m;
- long long a[200100];
- long long t[200100];
- long long sum[200100];
- int main () {
- cin >> n >> m >> k;
- for (int i = 0; i < n; i++) {
- cin >> a[i];
- sum[i + 1] = sum[i] + a[i];
- }
- long long sz = 0, prev = 0;
- for (int i = 1; i <= m; i++) {
- cin >> t[i];
- sz += t[i] - t[i - 1] - 1 - sz;
- if (sz >= n) {
- cout << n - prev + t[i - 1];
- return 0;
- }
- long long low = 0, high = sz, mid;
- while (low < high) {
- mid = low + (high - low) / 2;
- int val = sum[sz] - sum[sz - mid];
- if (val > k)
- high = mid;
- else low = mid + 1;
- }
- sz -= high;
- prev = sz;
- }
- cout << n - sz + t[m];
- }
- /*
- 5 1 4
- 1
- 2
- 3
- 4
- 5
- 4
- 5 3 6
- 1
- 2
- 3
- 4
- 5
- 4 5 6
- */
Advertisement
Add Comment
Please, Sign In to add comment