[NOIP 2004 普及组] 不高兴的津津 · 教师题解

[NOIP 2004 普及组] 不高兴的津津

知识点

条件判断、最大值、线性扫描

解题思路

从周一到周日扫描每天总课时,初始最大值设为8、答案设为0,仅当总课时严格超过当前最大值时更新。

正确性说明

扫描到第i天时,答案是前i天课时超过8的最早最大值所在天。严格更新保留较早的并列天,初始值正确处理无人超过8小时的情况。

易错点

课时等于8不算不高兴;并列时不能用>=更新,否则会选择较晚一天。

复杂度

时间O(7)=O(1),空间O(1)。

参考代码(GNU C++17)

#include<bits/stdc++.h>
using namespace std;
int main(){
    int best=8,day=0;
    for(int i=1;i<=7;++i){int a,b;cin>>a>>b;if(a+b>best){best=a+b;day=i;}}
    cout<<day<<'\n';
}
返回题目