fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. int n; cin >> n;
  6. vector<int> arr(n);
  7. for(int i = 0; i < n; i++)
  8. cin >> arr[i];
  9.  
  10. int res = INT_MIN;
  11.  
  12. for(int i = 0; i < n; i++){
  13. for(int j = i+1; j < n; j++){
  14. int l = arr[i]+arr[j];
  15.  
  16. unordered_map<int,int> mp;
  17. for(int k = 0; k < n; k++){
  18. mp[arr[k]]++;
  19. }
  20. int ans = 0;
  21. unordered_map<int,int> vis;
  22. for(auto k : mp){
  23. int val = k.first;
  24. int freq = k.second;
  25. int req = l-val;
  26. if(vis.find(val) != vis.end() || vis.find(req) != vis.end())
  27. continue;
  28. if(mp.find(req) != mp.end()){
  29. if(val == req)
  30. ans += freq/2;
  31. else{
  32. ans += min(freq, mp[req]);
  33. }
  34. vis[req]++;
  35. vis[val]++;
  36. }
  37. }
  38. res = max(res,ans);
  39. }
  40. }
  41. cout << res;
  42. return 0;
  43. }
Success #stdin #stdout 0s 5320KB
stdin
5
1 2 6 6 5
stdout
2