码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces Round #552 (Div. 3) C题

时间:2019-04-17 22:13:30      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:onclick   close   表示   play   --   选择   int   min   none   

题目网址:http://codeforces.com/contest/1154/problem/C

题目意思:小猫吃三种食物,A,B,C,一周吃食物的次序是,A,B,C,A,C,B,A,当小猫该天无食物可吃时,就会饿死,现给出a,b,c三个数,表示A,B,C的食物数量,

选择一天开始,问小猫最多可以活到多少天。

题解:首先,在一周时间,A要吃三天,B要吃两天,C要吃两天,先随便选一天开始,当剩下食物不足以撑过一周时停止,再细分剩下的食物数量,看小猫饿

死是经过的最多天数。选择的天数用暴力写即可。

技术图片
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int k[10]={1,2,3,1,3,2,1};
 4 int main()
 5 {
 6     int a,b,c,flag,days=-1;
 7     cin>>a>>b>>c;
 8     int minn=min(min(a/3,b/2),c/2);
 9     a-=minn*3,b-=minn*2,c-=minn*2;
10     minn=minn*7;
11 //    cout<<a<<endl;cout<<b<<endl;cout<<c<<endl;
12     for(int i=0;i<7;i++)
13     {
14         flag=0;
15         int sa=a,sb=b,sc=c;
16         for(int j=0;j<7;j++)
17         {
18             if(k[(i+j)%7]==1)
19             {
20                 if(sa==0) flag=1;
21                 sa--;
22             }
23             else if(k[(i+j)%7]==2)
24             {
25                 if(sb==0) flag=1;
26                 sb--;
27             }
28             else if(k[(i+j)%7]==3)
29             {
30                 if(sc==0) flag=1;
31                 sc--;
32             }
33             if(flag==1) {
34                 days=max(days,j);break;
35             }
36         }
37     }
38     cout<<days+minn<<endl;
39 } 
View Code

 

Codeforces Round #552 (Div. 3) C题

标签:onclick   close   表示   play   --   选择   int   min   none   

原文地址:https://www.cnblogs.com/duxing201806/p/10726493.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!