如题
下面是我的基本思路
?下面是我的代码
#include<bits/stdc++.h>
using namespace std;
int a[1000005]={0};
long long s = 0, x = 0, i, n, b;
int main()
{
cin >> n;
for (i = 0; i < n; i++) // 循环读取n个整数,并将计数存储在数组a中
{
cin >> b;
a[b]++; // 对应id的计数加1
}
for (i = 0; i <= n; i++) // 遍历计数数组a
{
if (a[i] > 2)
s += a[i] - 2; // 计数大于2的部分
else if (a[i] == 1)
x++; // 统计计数为1的数量
}
if (s >= x) // 判断大于2和计数为1的部分
cout << s;
else
cout << (s+x)/2;
return 0;
}