CF 322b
题意
给定三种颜色的花的个数 a , b , c
定义一个花束有以下两种
- 3 枝相同颜色的花
- 每种颜色各 1 枝
求最多的花束数量
分析
不难想到,先把所有的花按同色制为花束,再将剩余的花束按照各一枝匹配
可是一发 WA 发现问题
如果剩余的花束数量为 0 , 2 , 2 的话
最优的方案应该是将 0 的那种拆分为两束
特判下
代码
#include <bits/stdc++.h>
using namespace std;
int s[4];
int main()
{
int a , b , c;
scanf("%d %d %d" , &a , &b , &c);
s[1] = a % 3;
s[2] = b % 3;
s[3] = c % 3;
sort(s + 1 , s + 4);
int cnt = 0;
if(s[1] == 0 && s[2] == 2 && s[3] == 2 && min(a , min(b , c)))
{
cnt++;
}
printf("%d" , a / 3 + b / 3 + c / 3 + min(a % 3 , min(b % 3 , c % 3)) + cnt);
return 0;
}