fork download
  1. #include <iostream>
  2. #include<bits/stdc++.h>
  3. #define fo(i,start,end) for(int i=start;i<end;i++)
  4. using namespace std;
  5.  
  6. int main() {
  7. int arr[] = {3,1,3,-2,2};
  8. int k = 4;
  9. int n = 5;
  10. //find the largest and smallest length of subarray with sum = K
  11. int mini = INT_MAX;
  12. int maxi = INT_MIN;
  13. int sum = 0;
  14. fo(i,0,n){
  15. sum = 0;
  16. fo(j,i,n){
  17. sum +=arr[j];
  18. if(sum == k){
  19. mini = min(mini,j-i+1);
  20. maxi = max(maxi,j-i+1);
  21. }
  22. }
  23.  
  24. }
  25. cout<<"largest subarray length with sum "<<k<<" is "<<maxi<<endl;
  26. cout<<"smallest subarray length with sum "<<k<<" is "<<mini<<endl;
  27. return 0;
  28. }
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
largest subarray length with sum 4 is 4
smallest subarray length with sum 4 is 2