• 感激的花束 题解


    题目描述:

    南星国的某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

     

     

    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: ",++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 ",result);
    }
    }
    return 0;
    }

     

  • 相关阅读:
    linux ubuntu系统安装及卸载oracle xe11.2.0
    32位和64位的应用软件区别是什么
    在Ubuntu Server下安装Oracle XE
    虚拟化系列Citrix XenServer 6.1 安装与配置
    Oracle: listener.ora 、sqlnet.ora 、tnsnames.ora的配置及例子
    敏捷开发资料站推荐
    win7中竟然没有telnet.exe??
    Eclipse+Tomcat+Ant 小记
    为已有的web project项目加入maven支持,并使用myeclipse的插件.
    .NET性能优化数据库方面的总结
  • 原文地址:https://www.cnblogs.com/lxl0928/p/3864316.html
Copyright © 2020-2023  润新知