传送门
http://codeforces.com/contest/1313/problem/A
题意
给你三种食物的数量,求这些食物可以提供给多少客人?每位客人必须满足一下情况。
1.每个客人至少有一种食物。
2.每种食物的数量不能超过1。
3.每位客人的菜品都不一样。
思路
由于总情况不超过10个,可以把所有情况列出。a代表饺子,b代表梅汁,c代表煎饼。
a,b,c,a b,a c,b c,a b c这七种情况。所以可以暴力枚举每一种可能。
AC代码
#include<bits/stdc++.h>
using namespace std;
int arr[3];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
for(int i=0;i<3;i++) scanf("%d",&arr[i]);
sort(arr,arr+3);
int x=arr[0];
if(x>=4) puts("7");
else if(x>=3 &&x<4) puts("6");
else if(x>=2 &&x<3)
{
if(arr[2]>=3) puts("5");
else puts("4");
}
else if(x>=1 && x<2)
{
if(arr[1]>=2) puts("4");
else puts("3");
}
else//x==0
{
if(arr[2]==0) puts("0");
else if(arr[1]>=2) puts("3");
else if(arr[1]==1) puts("2");
else puts("1");
}
}
return 0;
}