分水果(冬季每日一题 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;
}

相关内容

热门资讯

山水皆有情!丽江两山一江的千年... 去过丽江、走过虎跳峡的人,大概率都听过哈巴雪山和金沙江的传说。很多人站在峡谷之下,望着奔腾不息的金沙...
活力中国调研行丨“殷”你而来 ... 9月12日,游客在殷墟博物馆“甲骨文展厅”内参观。位于河南省安阳市的殷墟博物馆新馆是首个全景式展现商...
浦江之夜赴美好相逢,第37届上... 9月12日晚,黄浦江畔灯火璀璨,第37届上海旅游节大巡游在外滩中山东一路上演。不少观众早早便来到外滩...
美丽中国丨秋韵紫鹊界 梯田入画... 这是9月11日拍摄的紫鹊界梯田(无人机照片)。 金秋九月,湖南省娄底市新化县紫鹊界梯田稻谷渐次成熟。...
中国之巅奏响《共同的节日》,千... 千吨阻尼器,“迎世赛、游上海旅游节”。9月13日,由上海市文化和旅游局指导推出上海旅游·会客│巅峰之...