不高兴的津津(升级版)

不高兴的津津(升级版)

GESP一级综合练习,需要一点程序解题的小思考,推荐练习,难度★✮☆☆☆。

luogu-P1534

题目要求

题目描述

津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每天妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。

这次与 NOIp2004 普及组第一题不同的是:假设津津不会因为其它事不高兴,但是她的不高兴会(当然高兴也会)持续到第二天。请你帮忙检查一下津津以后 nn 天的日程安排,看看以后 nn 天她会不会不高兴(计算方法:用昨天不高兴程度加上今天上课总时间减去 88 后得到的数作为今天不高兴程度);输出以后 nn 天结束后不高兴程度和是多少。

输入格式

第一行共一个数 nn

第二行至第 n+1n+1 行,每行两个数,表示这天上学时间和课外补习班时间。

输出格式

一个数,这 nn 天过后的不高兴程度和。

样例输入 #1

7
5 3
6 2
7 2
5 3
5 4
0 4
0 6

样例输出 #1

-2

数据范围及约定

对于全部数据,上学时间和上课时间各不超过 88,和不超过 1616n3000n \le 3000


题目分析

  1. 理解题目要求

    • 每天有上学时间和课外补习时间
    • 一天总学习时间超过8小时会不高兴
    • 不高兴程度会持续到第二天
    • 需要计算n天后的总不高兴程度
  2. 解题思路

    • 每天的不高兴程度 = 前一天的不高兴程度 + (今天总学习时间 - 8)
    • 用变量记录前一天的不高兴程度
    • 用变量累加每天的不高兴程度
    • 循环n天,计算最终的不高兴程度总和

{% include custom/custom-post-content-inner.html %}

示例代码

#include <iostream>
using namespace std;
int main() {
    int a;  // 天数
    cin >> a;
    int b, c;  // b是上学时间,c是上课时间
    int ans = 0;  // 存储最终的不高兴程度总和
    int y = 0;  // 存储前一天剩余的不高兴程度
    for (int i = 1; i <= a; i++) {
        cin >> b >> c;
        int t = (c + b) - 8;  // 计算当天产生的不高兴程度(上学+上课时间-8)
        int t_1 = t + y;  // 当天总的不高兴程度 = 当天产生的 + 前一天剩余的
        ans += t_1;  // 累加到总和中
        y = t_1;  // 更新前一天的不高兴程度
    }
    cout << ans;  // 输出最终的不高兴程度总和
    return 0;
}

{% include custom/custom-post-content-footer.md %}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

luogu-”系列题目可在 洛谷题库 在线评测。

bcqm-”系列题目可在 编程启蒙题库 在线评测。

GESP/CSP 认证学习微信公众号
GESP/CSP 认证学习微信公众号
Last updated on