here is the link to the question: Contest Page | CodeChef
here is my code:
#include
#include
#include
#include
#include <unordered_map>
#include <unordered_set>
#include
#include
#include
#include
#include
#include
using namespace std;
#define int long long int
#define endl “\n”
//#define mod 1000000007
#define pb push_back
void solve()
{
int n;
cin >> n;
vector v(n);
for(int i=0;i<n;i++)
cin >> v[i];
unordered_map<int, int> mp;
for(int i=0;i<n;i++)
mp[v[i]]++;
int count=0, rect=0;
for(auto it=mp.begin(); it!=mp.end(); it++)
{
int x=it->second;
if(x%2)
count++, x++;
if(rect==0)
rect+=(x/2);
else
rect=abs(rect-(x/2));
}
cout << count+(rect*2) << endl;
}
int32_t main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int tc = 1;
cin >> tc;
while (tc–)
solve();
}
Thanks for your help in advance.