遍地橘子(湖南科技大学2014新生选拔赛)

链接湖南科技大学新生选拔赛 1638
思路:将k,m,n的不同情况全部列出来,分情况讨论。情况较多,要细心。

#include <stdio.h>

int main()
{
    int t,m,n,k;
    scanf("%d",&t);
    int ans,sum,x,y;
    while(t--)
    {
        ans=0;
        scanf("%d%d%d",&m,&n,&k);
        sum=m*n;     //橘子树总数
        if(m>n){x=m;y=n;}
        else {x=n;y=m;}    //将m,n比较大小,以便于后续操作
        if(k>sum)k=sum;   //如果k的总数大于橘子数总数,就将sum赋予k
        if(k==0)ans=sum;
        if(y==1)    //仅有一行的情况
        {
            if(x==1)ans=sum+k;
            else if(x==2)ans=sum+2*k;
            else if(k<(x-2))ans=sum+3*k;     
            else ans=sum+3*(x-2)+2*(k-x+2);    //将情况分成去掉两端的和在两端的两种情况  下同
        }
        else if(y==2)
        {
            if(k<=(x-2)*2)ans=sum+4*k;
            else ans=sum+4*(x-2)*2+(k-2*(x-2))*3;
        }
        else
        {
            if(k<=sum-4)
            {
                if(k<=(x-2)*(y-2))ans=sum+5*k;
                else ans=sum+5*(x-2)*(y-2)+4*(k-(x-2)*(y-2));
            }
            else ans=sum+5*(x-2)*(y-2)+4*(sum-4-(x-2)*(y-2))+3*(k-sum+4);
        }
        printf("%d\n",ans);
    }
    return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值