CCF 小明放学 2019-11-28

这是我遇到的最坑的第二题/(ㄒoㄒ)/~~
1.首先必须读清题目介绍的K的值对应的灯的颜色,K=1、2、3分别对应红、黄、绿;
其次应该明白红绿灯的变化顺序,红绿黄交替变化,千万不要按着K值对应的顺序走啊,我错了好久才发现。
2.做的时候找到了一个不会编译报错但其实语义不对的写法:

if(0<t1&&t1<=r) //√
if(0<t1<=r) //×

3.注意要用long long定义变量。

100分的代码如下

#include<iostream>
using namespace std;
int main()
{
    long long  n,k,t,r,y,g,tt,t1,s=0;
    cin>>r>>y>>g;
    cin>>n;
    while(n--)
    {
        tt=r+y+g;
        cin>>k>>t;
        if(k==0)
        s+=t;
        if(k==1)
        {
            t1=(s+(r-t))%tt;
            if(0<t1&&t1<=r)     
                s+=(r-t1);       
            if(r<t1&&t1<=(r+g))     
                s+=0;           
            if(r+g<t1&&t1<=r+y+g) 
                s+=r+tt-t1; 
        }
        if(k==2)
        {
            t1=(s+tt-t)%tt;
            if(0<t1&&t1<=r)     
                s+=(r-t1);       
            if(r<t1&&t1<=(r+g))     
                s+=0;           
            if(r+g<t1&&t1<=r+y+g) 
                s+=r+tt-t1; 
        }           
        if(k==3)
        {
            t1=(s+r+g-t)%tt;
            if(0<t1&&t1<=r)     
                s+=(r-t1);       
            if(r<t1&&t1<=(r+g))     
                s+=0;           
            if(r+g<t1&&t1<=r+y+g) 
                s+=r+tt-t1; 
        }       
    }
    cout<<s<<endl;
    return 0;
 } 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,489评论 0 16
  • 此书的封面上有复旦大学中文系教授的书评“在读过刘慈欣几乎所有作品之后,我毫不怀疑,这个人单枪匹马,把中国科幻文学提...
    星际老人阅读 737评论 1 4
  • 我刚在未来街十字路口西侧下车,插着耳机倒是很悠闲,声音刚好盖过周围的叫卖声。刚走几步,前面有一个男人,黑色风衣...
    低头猪阅读 364评论 0 0
  • 寻求思想的碰撞 期待理想的开炸。 其实我在写这个题目的时候,内心还是有点颤抖的。我是鼓足了好大的勇气才敢在键盘上敲...
    杜月茹捻阅读 743评论 0 1
  • 对不起, 我的确在知道这个消息后, 笑了, 因为你再也不是谁的所属人了; 你再也没有“他是某某的男朋友”的标签了;...
    陌初阅读 262评论 7 10

友情链接更多精彩内容