分水果(冬季每日一题 21)
admin
2024-03-14 20:27:13

现在有 aaa 个苹果,bbb 个香蕉,ccc 个橘子。

你要将这些水果分给尽可能多的小朋友。

假设一个小朋友分到的苹果数量为 xxx,香蕉数量为 yyy,橘子数量为 zzz。

在分发水果时,需要满足:

  • 每个小朋友至少要分到一个水果,即 x+y+z≥1x+y+z≥1x+y+z≥1。
  • 每个小朋友分到的苹果数量不得超过 111,香蕉数量不得超过 111,橘子数量不得超过 111,即 0≤x,y,z≤10≤x,y,z≤10≤x,y,z≤1。
  • 任意两个小朋友分到的水果均不完全相同,即所有三元组 (x,y,z)(x,y,z)(x,y,z) 互不相同。

请问,最多可以将水果分给多少个小朋友。

输入格式
第一行包含整数 TTT,表示共有 TTT 组测试数据。

每组数据占一行,包含三个整数 a,b,ca,b,ca,b,c。

输出格式
每组数据输出一行结果,表示可以分到水果的小朋友的最大数量。

数据范围
1≤t≤500,1≤t≤500,1≤t≤500,
0≤a,b,c≤100≤a,b,c≤100≤a,b,c≤10
输入样例:

7
1 2 1
0 0 0
9 1 7
2 2 3
2 3 2
3 2 2
4 4 4

输出样例:

3
0
4
5
5
5
7

#includeusing namespace std;int q[10][5];void init(){for(int i = 1; i < 1 << 3; i++) {q[i][0] = i & 1;q[i][1] = i >> 1 & 1;q[i][2] = i >> 2 & 1;}
}int main(){int t;cin >> t;init();int a, b, c;while(t--){cin >> a >> b >> c;int sa, sb, sc, cnt;int res = 0;for(int i = 1; i < 1 << 7; i++){sa = sb = sc = cnt = 0;for(int j = 0; j < 7; j++){if(i >> j & 1){cnt++;sa += q[j+1][0], sb += q[j+1][1], sc += q[j+1][2];}}if(sa <= a && sb <= b && sc <= c) res = max(res, cnt);}cout << res << endl;}return 0;
}

相关内容

热门资讯

教师专享福利!北京这些景区免票... 新京报讯 据首都教育消息,教师节将至,北京多家景区为老师们准备了专属免票福利!这份优惠合集已整理好,...
黑茶,喝的是一种境界与健康 在专门用来喝黑茶的茶具“飘逸杯”里,黑茶茶汤看起来并不像“黑茶”这个名字那样黑黢黢的一团。 玻璃器皿...
上海旅游节大巡游花车阵容抢先看... 2026上海旅游节大巡游9月12日外滩启幕,21辆全新主题花车携手21支境内外表演方队联袂登场,邀你...
原创 8... 上周门诊来了位 62 岁的张阿姨,得糖尿病快五年了,平时管嘴特别严,糖果、点心、甜饮料一概不碰,连水...
原创 餐... 2026年9月8日晚,南京浦口区泰冯路29号,墨语江南·阿婆菜餐厅户外帐篷里,灯火温润,其间还天降喜...