Advertisement
leminhkt

73

Aug 5th, 2020
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4.  
  5. int n, res, a[51];
  6. vector<pair<long long, int>> d[101];
  7.  
  8.  
  9. void query(){
  10.     cin >> n; res = 1;
  11.     for (int i = 1; i <= n; ++i)
  12.         cin >> a[i],
  13.         d[i].clear();
  14.     for (int i = n + 1; i <= 2*n; ++i)
  15.         d[i].clear();
  16.     for (long long i = 1; i < n; ++i)
  17.         for (long long j = i + 1; j <= n; ++j) {
  18.             int sum = a[i] + a[j];
  19.             long long f = ((1 << i) | (1 << j));
  20.             int s = d[sum].size();
  21.             for (int k = 0; k < s; ++k)
  22.                 if (!(d[sum][k].first & f))
  23.                     res = max(res, d[sum][k].second + 1),
  24.                     d[sum].push_back({d[sum][k].first | f, d[sum][k].second + 1});
  25.             d[sum].push_back({f, 1});
  26.         }
  27.     cout << res << '\n';
  28. }
  29.  
  30. int main(){
  31.     //freopen("FILENAME.INP", "r", stdin);
  32.     //freopen("FILENAME.OUT", "w", stdout);
  33.  
  34.  
  35.     int t;
  36.     for (cin >> t; t--;)
  37.         query();
  38.  
  39.  
  40.     return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement