fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. long long n, s;
  4. long long a[100009];
  5. // Khởi tạo mảng cộng dồn p
  6. long long p[100009];
  7. bool check(int k) {
  8. for(int i = 1; i <= n - k + 1; ++i) {
  9. int t = p[i + k - 1] - p[i - 1]; // code của anh dùng mảng cộng dồn p, còn a là mảng lưu giá trị thôi
  10. // code cua em
  11. // int t = a[i + k - 1] - a[i - 1];
  12. if(t <= s)
  13. return true;
  14. }
  15. return false;
  16. }
  17. int main() {
  18. cin >> n;
  19. cin >> s; // em thiếu cin s, đề có s thì phải nhập cho đủ
  20. for(int i = 1; i <= n; ++i) {
  21. cin >> a[i];
  22. }
  23. // Khởi tạo mảng cộng dồn
  24. for(int i = 1; i <= n; ++i) {
  25. p[i] = p[i - 1] + a[i];
  26. }
  27. int l = 1, r = n, ans = 0;
  28. while(l <= r) {
  29. int mid = (l + r) / 2;
  30. if(check(mid) == true) {
  31. ans = mid;
  32. l = mid + 1;
  33. }
  34. else {
  35. r = mid - 1;
  36. }
  37. // cout << ans
  38. // Lưu ý: ko để cout trong while/ for vì nó sẽ in ra nhiều lần
  39. }
  40. cout << ans; // vì chỉ cần kết quả cuối cùng nên cout ở đây
  41. }
  42.  
Success #stdin #stdout 0s 5312KB
stdin
Standard input is empty
stdout
Standard output is empty