AT2299 [ARC068B] Card Eater 题解
题目传送门
思路
这道题我们可以开一个桶,
统计一共有多少个不同的数。
如果个数是偶数的话,
最后的答案要 \(-1\)。
比如样例
5
1 2 1 3 7
不同的数有 \(4\) 个。
但是我们在操作中要多删掉一个数,
所以答案要 \(-1\) 。
代码如下:
#include <stdio.h>
const int N = 1e5 + 10;
int n, t;
int sum;
int a[N];
main () {
scanf ("%d", &n) ;
for (int i = 1; i <= n; i ++) {
scanf ("%d", &t) ;
++ a[t];
}
for (int i = 1; i <= N - 1; ++ i)
if (a[i] != 0)
sum ++;
printf ("%d", (sum & 1) ? sum : sum - 1) ;
}