传送门
A. Marathon
给出4个数字A,B,C,D,问:B,C,D里面有几个数字比A大?
参考代码:
#include <bits/stdc++.h>
using i64 = long long;
inline int read() {
bool sym = 0; int res = 0; char ch = getchar();
while (!isdigit(ch)) sym |= (ch == '-'), ch = getchar();
while (isdigit(ch)) res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
return sym ? -res : res;
}
int main() {
int t = read();
while (t--) {
int a = read(), b = read(), c = read(), d = read();
printf("%d\n", (b > a) + (c > a) + (d > a));
}
return 0;
}
B. All Distinct
题意:
每次删除两个数,经过若干次操作后,保证数组中没有重复元素的前提下,数组元素的个数的最大值是多少?
思路:
计算多出来多少个元素,如果多出来的元素的个数是偶数,那么全部删除后剩下的元素个数就是答案,如果多出来的元素个数是奇数,那么就必须多删除一个,答案就是剩下的元素个数减1.
参考代码:
#include <bits/stdc++.h>
using i64 = long lo