情人节
Time Limit: 2000/1000ms (Java/Others)
Problem Description:
某发每天都在各大群水啊水,然后认识了很多崇拜他的妹子,毕竟是数学专业。这不,情人节来了,某发网购了三种颜色的花,碳黑色的a朵,惨白色的b朵,屎黄色的c朵,三朵集成一束。打算送给他认识的妹子,可是妹子不喜欢收到单一颜色的花,比如:3朵都是屎黄色是不被允许的。每个妹子得到一束。请问某发最多一共可以送给多少个妹子呢?
Output:
输出占1行,包括1个整数,代表能送给最多几个妹子。
Sample Output:
4
note:在此样例中,可以集成abb,bcc,caa,aab.4束,送给4个妹子。
解题思路:多枚举几个栗子可以发现,如果最小的两个数之和(a[0]+a[1])(已排序)的两倍小于最大数,则一共有(a[0]+a[1])束,否则为三者的平均值,水过。
AC代码:
1 #include<bits/stdc++.h>
2 using namespace std;
3 long long a[5];//要用长整型
4 int main(){
5 while(cin>>a[0]>>a[1]>>a[2]){
6 sort(a,a+3);
7 if(a[2]>(a[0]+a[1])*2)cout<<(a[0]+a[1])<<endl;
8 else cout<<(a[0]+a[1]+a[2])/3<<endl;
9 }
10 return 0;
11 }