Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int n, res, a[51];
- vector<pair<long long, int>> d[101];
- void query(){
- cin >> n; res = 1;
- for (int i = 1; i <= n; ++i)
- cin >> a[i],
- d[i].clear();
- for (int i = n + 1; i <= 2*n; ++i)
- d[i].clear();
- for (long long i = 1; i < n; ++i)
- for (long long j = i + 1; j <= n; ++j) {
- int sum = a[i] + a[j];
- long long f = ((1 << i) | (1 << j));
- int s = d[sum].size();
- for (int k = 0; k < s; ++k)
- if (!(d[sum][k].first & f))
- res = max(res, d[sum][k].second + 1),
- d[sum].push_back({d[sum][k].first | f, d[sum][k].second + 1});
- d[sum].push_back({f, 1});
- }
- cout << res << '\n';
- }
- int main(){
- //freopen("FILENAME.INP", "r", stdin);
- //freopen("FILENAME.OUT", "w", stdout);
- int t;
- for (cin >> t; t--;)
- query();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement