Gym - 101291I Mismatched Socks(思维)

Mismatched Socks
题 意:小明有很n种颜色的袜子,每种颜色的袜子有ai个。小明不喜欢穿同颜色的袜子,问小明最多能几天不穿同颜色的。
数据范围:
1<=n<=1e3
1<=ai<=1e9
输入样例:

3
1
2
1

输出样例:

2

思 路:最后的答案和数量最多MAX的那种颜色的袜子有关。如果MAX*2>=sum(所有袜子的数量)那么其他的全部都和数量最多的那个去凑。否则的话,如果sum是奇数,那么一定只会剩下一个,否则就是sum/2。

#include
using namespace std;
const int maxn = 1e3+5;
typedef long long ll;
int n;
int a[maxn];
bool vis[maxn];
bool cmp(int x,int y){
    return x>y;
}
int main(){
    scanf("%d",&n);
    int MAX = -1;
    ll sum = 0;
    for(int i=0;iscanf("%d",&a[i]),MAX = max(a[i],MAX),sum+=a[i];
    if(2*MAX >= sum) printf("%lld\n",sum-MAX);
    else printf("%lld\n",sum/2);
    return 0;
}

你可能感兴趣的:(Gym - 101291I Mismatched Socks(思维))