fork download
  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4.  
  5. int main() {
  6. // your code goes here
  7. vector<int> arr = {2,2,1,4};
  8. vector<int> p(arr.size());
  9. int target = 5;
  10. unordered_map<int, int> mp;
  11. int count = 0;
  12. int largest =0, smallest =arr.size();
  13.  
  14.  
  15. p[0]=arr[0];
  16. mp[0]=-1;
  17.  
  18.  
  19. for(int i=1; i<arr.size(); i++){
  20. p[i] = p[i-1]+arr[i];
  21. }
  22.  
  23. for(int j=0; j<arr.size(); j++){
  24. int d = p[j]-target;
  25. if(mp.find(d) != mp.end()){
  26. d=j-mp[d];
  27.  
  28. smallest=min(d, smallest);
  29. largest = max(d, largest);
  30. }
  31. mp[p[j]]=j;
  32. }
  33.  
  34. cout << smallest<< " "<< largest;
  35. return 0;
  36. }
Success #stdin #stdout 0s 5304KB
stdin
Standard input is empty
stdout
2 3