解题思路:最为重要的想清楚题目中间涉及的做题时间,做完最后一题是不同休息的,可以用到等差数列求和完成本题。

注意事项:总时间=做题时间+休息时间


参考代码:

完整代码:

#include<stdio.h>

int main(void)

{

    int T;

    scanf("%d",&T);

    while(T--)

    {

        long long n,t1,d1,t2,d2;

        scanf("%lld %lld %lld %lld %lld",&n,&t1,&d1,&t2,&d2);

        long long blue = n*t1+d1*n*(n-1)/2;

        long long red =n*t2+d2*n*(n-1)/2;

        if(blue<red)

        {

            printf("BLUE\n");

        }

        else

if(red<blue)

        {

            printf("RED\n");

        }

        else

        {

            printf("DRAW\n");

        }

    }

    return 0;

}

以下是对于零基础的解释:


#include<stdio.h>

int main(void)

【(void):这个函数不接受任何的参数,意思是不用加入别的就可以直接启用。】

{

int T;

【定义整型变量T,因为题目告诉我们有T组数据,T是数组】

scanf("%d",&T);

【scanf读取作用,%d代表读取整数,&T意思是把读取到的数字存入到T这个变量。】

while(T--)

【while循环,循环T次。(T--:先拿当前的T去判断是否大于0,判断完之后T=T-1)

Eg:第一次判断:T=3>0——进入循环,T变成2.只要一进入循环,T的值就减1】

    {

        long long n,t1,d1,t2,d2;

【回顾题目,n是题目的数量,t1,d1是小兰参数,t2,d2是小红参数。为什么不用int?  数字计算比较大,int存不下会溢出,导致结果错乱。】

        scanf("%lld %lld %lld %lld %lld",&n,&t1,&d1,&t2,&d2);

【long对应的是%lld]

        long long blue = n*t1+d1*n*(n-1)/2;

[计算小蓝做完所有题目,下方有解释。】

        long long red =n*t2+d2*n*(n-1)/2;

        if(blue<red)

【判断小蓝的总时间<小红的总时间,谁的时间少谁赢】

        {

            printf("BLUE\n");

【小蓝的时间少,小蓝赢,那么就输出小蓝,按照规定的大写字母】

        }

        else

if(red<blue)

        {

            printf("RED\n");

        }

        else

【第三种情况,自动输出不用存在if,输出DRAW】

        {

            printf("DRAW\n");

        }

    }

    return 0;

}


点赞(1)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论