fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int solve(vector<int>& a , int k){
  5. int n = a.size();
  6. int maxLen = INT_MIN;
  7. unordered_map<int,int>mpp;
  8. mpp[a[0]] = 0;
  9. for(int j=1;j<n;j++){
  10. int target = k - a[j];
  11. if(mpp.count(target)){
  12. int len = j-mpp[target]+1;
  13. maxLen = max(maxLen,len);
  14. }
  15. if(mpp.find(a[j])==mpp.end())
  16. mpp[a[j]] = j;
  17. }
  18. return (maxLen==INT_MIN)? -1 : maxLen;
  19. }
  20.  
  21. int main() {
  22. int n;
  23. cin>>n;
  24. vector<int>a(n);
  25. for(int i=0;i<n;i++){
  26. cin>>a[i];
  27. }
  28. int k;
  29. cin>>k;
  30.  
  31. cout<<solve(a,k);
  32. return 0;
  33. }
Success #stdin #stdout 0.01s 5288KB
stdin
9
5 6 7 8 10 4 3 2 1
8
stdout
7