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 diff=0;
  18. while(i<n && j<n){
  19. if(i==j){
  20. if(diff>k){
  21. i++;
  22. j++;
  23. if(j<n){
  24. diff=arr[j]-arr[i];
  25. }
  26. }
  27. else{
  28. int g=1;
  29. maxi=max(maxi,g);
  30. j++;
  31. if(j<n){
  32. diff=arr[j]-arr[i];
  33. }
  34. }
  35. }
  36. else{
  37. diff=arr[j]-arr[i];
  38. if(diff<=k){
  39. int len=abs(j-i+1);
  40. j++;
  41. if(j<n){
  42. diff=arr[j]-arr[i];
  43. }
  44. maxi=max(len,maxi);
  45. }
  46. else{
  47. i++;
  48. j--;
  49. diff=arr[j]-arr[i];
  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 5284KB
stdin
11
5, 9, 20, 22, 28, 35, 60, 350, 358, 359, 360
30
stdout
The maximum size of subarray with sum<=k:11