fork download
  1.  
  2.  
  3. #include <bits/stdc++.h>
  4. using namespace std;
  5.  
  6. // Your function
  7. int fun(int arr[], int n, int k){
  8. // fill your logic here
  9. map<int,int>mp;
  10. mp[0]=0;
  11. int sum=0;
  12. int ans=0;
  13. for(int i=0;i<n;i++){
  14. sum=sum+arr[i];
  15. if(mp.find(sum-k)!=mp.end()){
  16. ans=max(ans,i-mp[sum-k]);
  17. }
  18. else{
  19. mp[sum]=i;
  20. }
  21. }
  22. cout<<"max size for sum k : "<<ans<<endl;
  23. int sum1=0;
  24. for(int i=0;i<ans;i++){
  25. sum1=sum1+arr[i];
  26. }
  27. int count =0;
  28. int j=ans-1;
  29. int i=0;
  30. while(j<n){
  31. if(sum1==k)
  32. count++;
  33. sum1=sum1-arr[i];
  34. i++;
  35. j++;
  36. if(j<n)
  37. sum1=sum1+arr[j];
  38. }
  39. return sum1;
  40.  
  41. }
  42.  
  43. int main(){
  44. int n, k;
  45. cin >> n;
  46.  
  47. int arr[n];
  48. for(int i = 0; i < n; i++){
  49. cin >> arr[i];
  50. }
  51.  
  52. cin >> k;
  53.  
  54. int result = fun(arr, n, k);
  55. cout << result << endl;
  56.  
  57. return 0;
  58. }
Success #stdin #stdout 0s 5300KB
stdin
Standard input is empty
stdout
max size for sum k :  0
-1101638432