fork download
  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3. const int Size = 200005;
  4. long long Arr1[Size], Arr2[Size];
  5. using namespace std;
  6. int main()
  7. {
  8. int N,M,K;
  9. cin >> N >> M >> K;
  10. vector <long long> cumm1, cumm2;
  11. cumm1.push_back(0); cumm2.push_back(0);
  12. for (int i = 1; i <= N; i++){
  13. cin >> Arr1[i];
  14. cumm1.push_back(cumm1[i-1] + Arr1[i]);
  15. }
  16. for (int i = 1; i <= M; i++){
  17. cin >> Arr2[i];
  18. cumm2.push_back(cumm2[i-1] + Arr2[i]);
  19. }
  20. auto upper = upper_bound(cumm1.begin(), cumm1.end(), K);
  21. long long idx1 = (upper - cumm1.begin()) - 1;
  22. long long minutes = K - cumm1[idx1];
  23. auto upper2 = upper_bound(cumm2.begin(), cumm2.end(), minutes);
  24. idx1 += (upper2 - cumm2.begin()) - 1;
  25. auto upper3 = upper_bound(cumm2.begin(), cumm2.end(), K);
  26. long long idx2 = (upper3 - cumm2.begin()) - 1;
  27. minutes = K - cumm2[idx2];
  28. auto upper4 = upper_bound(cumm1.begin(), cumm1.end(), minutes);
  29. idx2 += (upper4 - cumm1.begin()) - 1;
  30. cout << max(idx1, idx2);
  31. }
  32.  
Success #stdin #stdout 0s 4392KB
stdin
Standard input is empty
stdout
83628