感激的花束 题解

题目描述:

南星国的某J从小受某X照顾,有一天,他决定送些花束感激X君。

他觉得,虽然,送花什么的很狗血,但是,某J是个传统的人,所以,他还是打算送了。

在某X的家乡,有个奇怪的习俗,一个花束只能有3朵花,要么是三种不同色的,要么是一种色的。

花束送得越多,表示爱意越浓。现在某J所在的花店有红橙黄绿蓝靛紫七种颜色的花。

花店的南南老板有个怪癖。到她店里来买花的人,最多可以选三种颜色。

某J告诉南南老板,他想送最多的花束来表达他对X的敬意,聪明的南南老板听了某J的描述后,立马就知道了最多能有多少花束。你知道吗?

输入:

有多组输入,每组第一行输入一个整数T(1<= T <=1000),表示有T组,接下来的T行分别有7个整数(0<=ai<=10^9,i=1,2,....,7)分别表示7种不同颜色的花的数量。

输出:

首先输出当前Case k:,k表示第几组,接下来是n行结果。

样例输入:

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

样例输出:

Case 1:
2
5
Case 2:
4
4
0

C++代码:

#include <cstdio>
#include <iostream>
#include <cstring>

using namespace std;

int inn[11];

inline int query()
{
return inn[4]/3 + inn[5]/3 + inn[6]/3;
}

int main(int argc, const char * argv[])
{
int t,tt = 0;
while(~scanf("%d", &t))
{
printf("Case %d:\n",++tt);
while(t--)
{
for(int i=0;i<7;++i)
{
scanf("%d",&inn[i]);
}
sort(inn,inn+7);
int result = 0;
result = query();
if(inn[4])
{
--inn[4];
--inn[5];
--inn[6];
result = max(result,1+query());
}
if(inn[4])
{
--inn[4];
--inn[5];
--inn[6];
result = max(result,2+query());
}
if(inn[4])
{
--inn[4];
--inn[5];
--inn[6];
result = max(result,3+query());
}
printf("%d\n",result);
}
}
return 0;
}

感激的花束 题解,布布扣,bubuko.com

时间: 2024-10-06 12:15:33

感激的花束 题解的相关文章

【NOI2015】寿司晚会 题解(状压DP)

[问题描述] 为了庆祝 NOI 的成功开幕,主办方为大家准备了一场寿司晚宴.小 G 和小 W 作为参加 NOI 的选手,也被邀请参加了寿司晚宴. 在晚宴上,主办方为大家提供了 n?1 种不同的寿司,编号 1,2,3,?, n?1, 其中第 i 种寿司的美味度为 i+1  (即寿司的美味度为从 2 到 n ). 现在小 G 和小 W 希望每人选一些寿司种类来品尝,他们规定一种品尝方案 为不和谐的当且仅当:小 G 品尝的寿司种类中存在一种美味度为 x 的寿司,小 W 品尝的寿司中存在一种美味度为 y

【基础练习】【字符串处理】noip2011普及组第2题 统计单词数题解

这又是一道成功加入"容易吗"系列的基础题= =原本很简单,可是我一开始太大意看错了题,以为是让输出该单词是第几个单词,实际上应该输出该单词的首字母在第几个位置:改过后只得了二十分,看了一组数据,原来第一个单词前面可以有前导空格--幸亏其他单词前没有,否则还真不知道怎么办:实现的时候又出了各种问题.于是我决定总结一下. 题目: 给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置.注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大

【日常学习】【迭代加深搜索+哈希】codevs1004 四子连棋题解

转载请注明出处 [ametake版权所有]http://blog.csdn.net/ametake 题目描述 Description 在一个4*4的棋盘上摆放了14颗棋子,其中有7颗白色棋子,7颗黑色棋子,有两个空白地带,任何一颗黑白棋子都可以向上下左右四个方向移动到相邻的空格,这叫行棋一步,黑白双方交替走棋,任意一方可以先走,如果某个时刻使得任意一种颜色的棋子形成四个一线(包括斜线),这样的状态为目标棋局. ● ○ ●   ○ ● ○ ● ● ○ ● ○ ○ ● ○   输入描述 Input

洛谷 P1079 Vigen&#232;re 密码 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置. 题目链接:https://www.luogu.org/problem/show?pid=1079 题目描述 16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法――Vigenère 密 码.Vigenère 密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为 南军所广泛使用. 在密码学中,我们称需要加密的信息为明文,用 M 表示:称加密后的信息为密文,用 C 表示:而密钥是一种

8.8联考题解

今天的T1让我怀疑我是不是在做奥赛题--这考的是什么知识点啊这个,会不会用绝对值函数? Evensgn 的债务 时间限制: 1 Sec  内存限制: 128 MB 题目描述 Evensgn 有一群好朋友,他们经常互相借钱.假如说有三个好朋友A,B,C.A 欠 B 20 元,B 欠 C 20 元,总债务规模为 20+20=40 元.Evensgn 是个追求简约的人,他觉得这样的债务太繁杂了.他认为,上面的债务可以完全等价为 A 欠C20 元,B 既不欠别人,别人也不欠他.这样总债务规模就压缩到了 

POJ 2533 - Longest Ordered Subsequence(最长上升子序列) 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置. 题目链接:http://poj.org/problem?id=2533 Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given numeric sequence (a1, a2, ..., aN) be any sequence (ai1, ai2, ..., aiK)

(leetcode题解)Pascal&#39;s Triangle

Pascal's Triangle  Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5,Return [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] 题意实现一个杨辉三角. 这道题只要注意了边界条件应该很好实现出来,C++实现如下 vector<vector<int>> generate(int

2017ZZUACM省赛选拔试题部分题解----谨以纪念我这卡线滚粗的美好经历

写在前面: 其实心里有些小小的不爽又有点小小的舒畅,为啥捏?不爽当然是因为没被选拔上啦,舒畅捏则是因为没被选拔上反而让自己警醒,学长也提点很多很多."沉下去,然后一战成名"学长如是对我说,我很开心.其实这完全算不算是题解,只是我个人的一些小想法而已.而且到现在还有一题不会...让自己长点记性吧. 题目 A :聪明的田鼠 Time Limit: 1 Sec Memory Limit: 128 MB Description 田鼠MIUMIU来到了一片农田,农田可以看成是一个M*N个方格的矩

LeetCode-001题解

此题目摘自LeetCode001 Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2.