fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. // your code goes here
  6. int n;
  7. cin>>n;
  8. vector<int>arr(n);
  9. for(int i=0;i<n;i++){
  10. cin>>arr[i];
  11. }
  12. int k;
  13. cin>>k;
  14. int maxi=0;
  15. int i=0;
  16. int j=0;
  17. int sum=arr[0];
  18. while(i<n && j<n){
  19. if(i==j){
  20. if(sum>k){
  21. i++;
  22. j++;
  23. if(j<n){
  24. sum+=arr[j];
  25. }
  26. }
  27. else{
  28. int g=1;
  29. maxi=max(maxi,g);
  30. j++;
  31. if(j<n){
  32. sum+=arr[j];
  33. }
  34. }
  35. }
  36. else{
  37. if(sum<=k){
  38. int len=abs(j-i+1);
  39. j++;
  40. if(j<n){
  41. sum+=arr[j];
  42. }
  43. maxi=max(len,maxi);
  44. }
  45. else{
  46. sum=sum-arr[i];
  47. i++;
  48. sum=sum-arr[j];
  49. j--;
  50. if(i>j){
  51. j=i;
  52. }
  53. }
  54. }
  55. }
  56. cout<<"The maximum size of subarray with sum<=k:"<<maxi;
  57. return 0;
  58. }
Success #stdin #stdout 0.01s 5268KB
stdin
7
1 2 1 0 1 1 0
4
stdout
The maximum size of subarray with sum<=k:5