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

相关内容

热门资讯

摸鱼、钓虾、吃瓜、赏荷…初夏时... 这个周末,一场场充满野趣的“田园嘉年华”在沪郊金山多个农场上演,吸引众多市民带着孩子下乡来,赛跑、吃...
原创 戚... 5月28日,北京环球影城迎来了一对温暖的家庭画面:戚薇和李承铉携三岁半的儿子Seven现身游玩。现场...
滹沱河畔 遇见“诗和远方” 图为市民在滹沱河畔休闲娱乐。 初夏五月,惠风和畅。徜徉在石家庄滹沱河生态区(城区段),澄澈河水蜿蜒...
在迪士尼排队两小时,我才看清V... 文丨沈理 在网上看到一则新闻: 上海迪士尼,创极速光轮排队区。一个父亲牵着七八岁的儿子,已经在烈日...
重庆文旅喊你去吃火锅、观山水、... 本网讯(草原云·正北方网记者 马丽侠)火锅、机车、文创、演艺……5月28日下午,重庆市文化和旅游发展...