B - Ciel and Flowers
Crawling in process...
Crawling failed
Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u
Description
Fox Ciel has some flowers: r red flowers,g green flowers and b blue flowers. She wants to use these
flowers to make several bouquets.
There are 4 types of bouquets:
- To make a "red bouquet", it needs 3 red flowers.
- To make a "green bouquet", it needs 3 green flowers.
- To make a "blue bouquet", it needs 3 blue flowers.
- To make a "mixing bouquet", it needs 1 red, 1 green and 1 blue flower.
Help Fox Ciel to find the maximal number of bouquets she can make.
Input
The first line contains three integers r,g and b (0 ≤ r, g, b ≤ 109) — the number of red, green and blue flowers.
Output
Print the maximal number of bouquets Fox Ciel can make.
Sample Input
Input
3 6 9
Output
6
Input
4 4 4
Output
4
Input
0 0 0
Output
0
解析:混合花篮优先组合,三种颜色找到最少的,然后找到一样多的另外两种,组合起来。
另外a[2]%2=2,a[1]%2=2,再加一次。
#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; int main() { int a[4]; int ans; while(cin>>a[0] >>a[1]>>a[2]){ sort(a,a+3); b[1]=a[1]; b[2]=a[2]; ans=0; ans += a[0]; a[1]-=a[0]; a[2]-=a[0]; ans += a[1] / 3; ans += a[2] / 3; if(a[0]>0 && a[1]%3+a[2]%3==4) ans++; cout<<ans<<endl; } }