Advertisement
Josif_tepe

Untitled

Apr 20th, 2024
507
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.00 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. int pref_sum[100005];
  4.  
  5. int suma(int i, int j) {
  6.     if(i == 0) {
  7.         return pref_sum[j];
  8.     }
  9.     return pref_sum[j] - pref_sum[i - 1];
  10. }
  11. int main() {
  12.     int n;
  13.     cin >> n;
  14.     int m;
  15.     cin >> m;
  16.    
  17.     int niza[n];
  18.     int sum = 0;
  19.     for(int i = 0; i < n; i++) {
  20.         cin >> niza[i];
  21.        
  22.         sum += niza[i];
  23.         pref_sum[i] = sum;
  24.     }
  25.     int res = 0;
  26.     for(int i = 0; i < n; i++) {
  27.         int L = 0, R = n - 1;
  28.         int idx = -1;
  29.         while(L <= R) {
  30.             int mid = (L + R) / 2;
  31.             int kolku_e_sumata = suma(i, mid);
  32.             if(kolku_e_sumata <= m) {
  33.                 if(idx < mid) {
  34.                     idx = mid;
  35.                 }
  36.                 L = mid + 1;
  37.             }
  38.             else {
  39.                 R = mid - 1;
  40.             }
  41.         }
  42.         if(idx - i + 1 > res) {
  43.             res = idx - i + 1;
  44.         }
  45.     }
  46.     cout << res << endl;
  47.     return 0;
  48. }
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement