diff options
| author | omagdy7 <omar.professional8777@gmail.com> | 2022-07-18 22:11:40 +0200 |
|---|---|---|
| committer | omagdy7 <omar.professional8777@gmail.com> | 2022-07-18 22:11:40 +0200 |
| commit | adb97626f5553013e2758aeb136c8ffd28436627 (patch) | |
| tree | fa519c03dcd6dbc61ed350351bb226a7ffd33085 /codechef/sticks/main.cpp | |
| parent | 51c35987f270f7a19d83a11b2427a9ff7803e17c (diff) | |
| download | competitive-programming-adb97626f5553013e2758aeb136c8ffd28436627.tar.xz competitive-programming-adb97626f5553013e2758aeb136c8ffd28436627.zip | |
Solved a couple of problems
Diffstat (limited to 'codechef/sticks/main.cpp')
| -rw-r--r-- | codechef/sticks/main.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/codechef/sticks/main.cpp b/codechef/sticks/main.cpp new file mode 100644 index 0000000..b5fae0e --- /dev/null +++ b/codechef/sticks/main.cpp @@ -0,0 +1,42 @@ +#include <bits/stdc++.h> + +using namespace std; + +int main() { + ios_base::sync_with_stdio(false); + cin.tie(NULL); + int tt; + cin >> tt; + while (tt--) { + int n; + cin >> n; + vector<int> v(n); + map<int, int> mp; + for (int &x : v) { + cin >> x; + mp[x]++; + } + vector<int> pair; + set<int> vis; + int sq = 0; + sort(v.begin(), v.end()); + for(int i = v.size() - 1; i > 0; i--) { + int elem = v[i]; + if(mp[elem] >= 4) { + sq = elem; + } + if(mp[elem] >= 2 && !vis.count(elem)) { + if(pair.size() == 2) { + break; + } + pair.push_back(elem); + vis.insert(elem); + } + } + if(pair.size() == 2) { + cout << max(pair[0] * pair[1], sq * sq) << endl; + } else { + cout << -1 << endl; + } + } +} |
