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\n",sum);
    else
        printf("--\n");
    return 0;
}

原文地址:https://www.cnblogs.com/buhuiflydepig/p/10618524.html

时间: 2024-10-04 08:45:06

PTA 刷题与Z老师的头发的相关文章

PTA刷题——猜数字

7-46 猜数字 (20 分) 一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢.本题就要求你找出其中的赢家. 输入格式: 输入在第一行给出一个正整数N(≤104).随后 N 行,每行给出一个玩家的名字(由不超过8个英文字母组成的字符串)和其猜的正整数(≤ 100). 输出格式: 在一行中顺序输出:大家平均数的一半(只输出整数部分).赢家的名字,其间以空格分隔.题目保证赢家是唯一的. 输入样例: 7 Bob 35 Amy 28 James 98 Alice 11

PTA刷题——龟兔赛跑

7-4 龟兔赛跑 (20 分) 乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息.乌龟每分钟可以前进3米,兔子每分钟前进9米:兔子嫌乌龟跑得慢, 觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟: 而乌龟非常努力,一直跑,不休息.假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快? 输入格式: 输入在一行中给出比赛时间T(分钟). 输出格式: 在一行中输出比赛的结果:乌龟赢输出@@,兔

PTA刷题

L1-002:写得太糟了L1-006:不难就是没思路,测试点4是6  2*3L1-008:测试点之一,个数为5.10..个时,多换了个行L1-009:没过,测试点3L1-020:没过,超时La-033:真坑,3000岁以上也要算,3000 4L1-048:没过,超时L1-049:太烂了,下次再写L1-050:26进制L1-064:坑,测试点:can I can => can you can.   can you you=>I can you.  IIIII=>IIIII   一串空格不会

PTA刷题——出租车计价

7-2 出租车计价 (15 分) 本题要求根据某城市普通出租车收费标准编写程序进行车费计算.具体标准如下: 起步里程为3公里,起步费10元: 超起步里程后10公里内,每公里2元: 超过10公里以上的部分加收50%的回空补贴费,即每公里3元: 营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费). 输入格式: 输入在一行中给出输入行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔. 输出格式: 在一行中输出乘客应支付的车费(单位为元

PTA刷题——到底是不是太胖了

7-7 到底是不是太胖了 (10 分) 据说一个人的标准体重应该是其身高(单位:厘米)减去100.再乘以0.9所得到的公斤数.真实体重与标准体重误差在10%以内都是完美身材 (即 | 真实体重 ? 标准体重 | < 标准体重×10%).已知市斤是公斤的两倍.现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了. 输入格式: 输入第一行给出一个正整数N(≤ 20).随后N行,每行给出两个整数,分别是一个人的身高H(120 < H < 200:单位:厘米) 和真实体重W(50 <

BZOJ 刷题记录 PART 4

[BZOJ1143]CTSC的题目...先用floyed传递闭包,然后直接上匈牙利算法. [BZOJ1452]从未写过的二维树状数组.好像很简单.. struct two_bit { int f[305][305]; inline void add(int x,int z,int A) { for (;x<=n;x+=L(x)) for (int y=z;y<=m;y+=L(y)) f[x][y]+=A; } inline int ask(int x,int z) { int ans=0; f

轻院 2177 小姐姐的忠告:少吃辣条多刷题

题目链接:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=2177 题目大意:n个球放入n个箱子中,每个箱子放一个.每个球都是独一无二的,问方案数能被最大2的几次方整除. 解题思路:很明显方案数目就是n!,而所求的实际上是2~n中每个数的中有几个2.显然奇数可忽略,对于1~n的所有偶数来说,一次除二之后所有数都缩小了一半,即相当于求1~n/2的所有偶数,反复如此,可以很快得到思路. 代码: 1 const int inf = 0x3f3f3f3f

第十六周oj刷题——Problem C: B 求类中数据成员的最大值-类模板

Description 声明一个类模板,类模板中有三个相同类型的数据成员,有一函数来获取这三个数据成员的最大值. Input 分别输入3个整数,3个浮点数,3个字符 Output 3个整数的最大值 3个浮点数中的最大值 3个字符中的最大值 Sample Input 9 5 6 1.1 3.4 0.9 a b c Sample Output 9 3.40 c /* All rights reserved. * 文件名称:test.cpp * 作者:陈丹妮 * 完成日期:2015年 6 月 25 日

雅虎刷题狂人曹鹏:10年理论与实践结合的程序员之路

曹鹏,2006年浙江大学计算机科学专业毕业,2013年中国科学院计算机技术研究所博士毕业.博士期间研究方向为社交网络与社会计算,曾经做过搜索.话题发现.社交网络方面.推荐算法等领域的相关研究. 曾为浙江大学.浙江省大学生程序设计竞赛的命题人,是hackerrank.com.hackerearth.com和csdn英雄会.CSDN高校编程挑战的命题人,也是PAT(Programming Ability Test, http://pat.zju.edu.cn/) 的命题人.是国内ZOJ(http:/