CF 1154C Gourmet Cat


Gourmet Cat )

题目链接

我是题目链接戳我呀>_<

题面

在这里插入图片描述
在这里插入图片描述

题目大意

已知一只猫周一、周四、周日吃鱼,周二、周六吃炖兔肉,周三、周五吃鸡扒。(默默吐槽为啥一只猫吃的这么好,好好吃鱼不好么(⊙﹏⊙))现有鱼可吃a天,炖兔肉可吃b天,鸡扒可吃c天。问这些食物最多可以吃多少天。

题目分析

简单模拟。先看现有的食物最多可供几周,然后在现有食物减去可供应的周数需要的量。然后遍历从周一开始到从周日开始,剩下的食物最多可连续供应几天。答案就是周数 * 7 + 剩下食物连续供应天数。

代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    int tmp1=a/3,tmp2=b/2,tmp3=c/2;
    int week=min(tmp1,min(tmp2,tmp3));
    int ans1=week*7;
    a-=week*3;
    b-=week*2;
    c-=week*2;
    int ans2=0;
    int aa=a,bb=b,cc=c;
    //cout<<a<<" "<<b<<" "<<c<<endl;
    for(int j=0;j<7;j++){
        int cnt1=0;
        a=aa;b=bb;c=cc;
        for(int i=0;i<7;i++){
            if((i+j)%7+1==1||(i+j)%7+1==4||(i+j)%7+1==7){
                if(a){
                    a--;cnt1++;
                }else break;
            }
            else if((i+j)%7+1==2||(i+j)%7+1==6){
                if(b){
                    b--;cnt1++;
                }else break;
            }
            else{
                if(c){
                    c--;cnt1++;
                }else break;
            }
        }
        ans2=max(ans2,cnt1);
    }
    //cout<<cnt1<<" "<<cnt2<<endl;
    ans1+=ans2;
    printf("%d\n",ans1);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_36711868/article/details/89680104
cat
今日推荐