Advertisement
Guest User

Untitled

a guest
Feb 26th, 2020
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.80 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. unsigned long long v[200001], sumpart[200001], val, maxi;
  6. int n;
  7.  
  8. ifstream f("secvmaxval.in");
  9. ofstream g("secvmaxval.out");
  10.  
  11. int main()
  12. {
  13.     f >> n >> val;
  14.  
  15.     for(int i = 1; i <= n; i++) {
  16.         f >> v[i];
  17.         sumpart[i] = v[i] + sumpart[i - 1];
  18.     }
  19.     for(int i = 1; i <= n; i++) {
  20.         int left = i + 1, right = n;
  21.         while(left <= right) {
  22.             int mid = (left + right) / 2;
  23.             if(sumpart[mid] - sumpart[i] + v[i] > val) {
  24.                 right = mid - 1;
  25.             } else {
  26.                 left = mid + 1;
  27.             }
  28.         }
  29.         if(right - i + 1 > maxi && sumpart[right] - sumpart[i] + v[i] <= val) {
  30.             maxi = right - i + 1;
  31.         }
  32.     }
  33.     g << maxi;
  34.     return 0;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement