zoukankan      html  css  js  c++  java
  • PTA 刷题与Z老师的头发

    刷题与Z老师的头发 (10 分)

    在Pintia上,每天Z老师出题、小盆友们刷题。Z老师的头发遵从以下规律:
    1、每天生长出60根头发;
    2、每出一道题,减少20根头发;
    3、每天结束时统计累积做题情况:
    (1)若出的题全部被做出来,则Z老师产生“没题焦虑”,减少30根头发;
    (2)若小盆友做出来的题少于50%,则Z老师产生“学生不用功焦虑”,减少70根头发。
    现给定连续N天的出题、刷题情况,请计算Z老师头发的变化情况。

    输入格式:

    第一行输入一个正整数N (N<20);
    接下来N行,每行输入两个非负整数,分别是一天的出题数量q和刷题(做出来)数量s,以空格间隔。
    题目输入保证出题总数量不超过N*10,并且每天的刷题量不会使累积刷题数量超过累积出题数量。

    输出格式:

    若Z老师头发增加K根,则输出+K;若Z老师头发减少K根,则输出-K;若没有变化,则输出--

    输入样例1:

    3
    5 3
    5 1
    5 11

    输出样例1:

    -220

    输入样例2:

    3
    3 2
    3 2
    3 2

    输出样例2:

    --

    题意:此题一开始我没读懂题意,就WA了几次。然后后面别人告诉我,我就找道了自己的错误,就是每次累加每天的出题数量和刷题数(这两个数只需要不断累加,不需要减),然后用这两个判断,而不是用题目给的p和s。

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    
    using namespace std;
    
    int main()
    {
        long long n,q,s,sum=0,x=0,y=0;
        scanf("%lld",&n);
        sum=n*60;        //加上每天增长的头发数
        while(n--)
        {
            scanf("%lld%lld",&q,&s);
            x+=q,y+=s;        //每次进行累加,两个值都要
            if(y==x)        //判断题是否全部做出来了
                sum-=30;
            else if(1.0*y/x<0.5)        //判断做出来的题目数是否少于50%
                sum-=70;
        }
        sum-=x*20;            //减去每天掉下的头发数
        if(sum!=0)
            printf("%+lld
    ",sum);
        else
            printf("--
    ");
        return 0;
    }
  • 相关阅读:
    (转)基于C#的socket编程的TCP异步实现
    socket
    (转)抽象类、抽象属性、抽象方法
    (转)c# 互斥锁
    (转)C#连接OleDBConnection数据库的操作
    c# DLL封装并调用
    网络cmd命令
    (转)UCOSII在任务切换与出入中断时堆栈指针的使用
    app和bootloader跳转 MSP与PSP
    (转)stm32启动文件详解
  • 原文地址:https://www.cnblogs.com/buhuiflydepig/p/10618524.html
Copyright © 2011-2022 走看看