(洛谷)题目题号P1085 [NOIP2004 普及组] 不高兴的津津

Hello大家好我是小亦,本来今天是要打比赛的但是又不是很想打但是我参加了没写的话会扣等级分,哎想想就算了吧qwq,那么好今天我们来讲一下来自NOIP2004普及组真题的题目:不高兴的津津,这道题呢非常的简单,但是呢为啥很多人没过呢,很奇怪,这个是属于特水的,那话不多说思路赶紧给大家qwq:

首先呢这道题呢是要写枚举的,想了想这不是很简单吗但是正确率不是很理想,那么不废话了直接开始本人的思路大概我分为了以下8个步骤:

  1. 理解问题:首先,我们需要理解题目的要求。题目要求我们检查津津一周的日程安排,看是否有任何一天她的上课时间超过8小时,如果有,我们需要找出最不高兴的那一天。

  2. 输入处理:题目要求我们输入7行数据,每行包含两个小于10的非负整数,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

  3. 存储数据:我们可以创建两个数组(或列表)来存储每天在学校和妈妈安排的上课时间。

  4. 计算总时间:对于每一天,我们需要将在学校的上课时间和妈妈安排的上课时间相加,得到总的上课时间。

  5. 检查是否超过8小时:对于每一天的总上课时间,我们需要检查它是否超过8小时。

  6. 记录最不高兴的一天:如果某一天的上课时间超过8小时,我们需要记录下这一天,并与之前记录的最不高兴的一天进行比较。如果这一天的上课时间更长,或者上课时间相同但日期更早,我们就更新记录。

  7. 输出结果:最后,我们输出最不高兴的那一天。如果没有一天超过8小时,我们输出0。

  8. 特殊情况处理:如果有两天或两天以上的上课时间相同且最长,我们需要输出时间最早的那一天。

好了说完了那就赶紧公布代码吧,小亦再次提醒超代码可耻,

#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> schoolTime(7), extraTime(7);
    int maxTime = 0, unhappyDay = 0;

    // 读取每天的上课时间
    for (int i = 0; i < 7; ++i) {
        cin >> schoolTime[i] >> extraTime[i];
    }

    // 计算每天的总上课时间
    for (int i = 0; i < 7; ++i) {
        int totalTime = schoolTime[i] + extraTime[i];
        // 检查是否超过8小时
        if (totalTime > 8) {
            // 如果超过8小时,检查是否是目前为止最不高兴的一天
            if (totalTime > maxTime) {
                maxTime = totalTime;
                unhappyDay = i + 1; // 将索引转换为星期几(1-7)
            }
        }
    }

    // 输出结果
    if (maxTime > 0) {
        cout << unhappyDay << endl;
    } else {
        cout << "0" << endl;
    }

    return 0;
}

这份代码我放了注释,请放心食用#^.^#下期见~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值