大家好,我是入门一年半的个人练习生 潘道熹。
(一个入门一年半还停留在入门题的蒟蒻)


[NOIP2004 普及组] 不高兴的津津

题目描述

津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。

输入格式

输入包括 题解:《不高兴的津津》(原版、升级版)_i++ 行数据,分别表示周一到周日的日程安排。每行包括两个小于 题解:《不高兴的津津》(原版、升级版)_数据_02

输出格式

一个数字。如果不会不高兴则输出 题解:《不高兴的津津》(原版、升级版)_模拟_03,如果会则输出最不高兴的是周几(用 题解:《不高兴的津津》(原版、升级版)_c++_04

样例 #1

样例输入 #1

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

样例输出 #1

3

提示

NOIP2004 普及组第 1 题

  • 2021-10-27:增加一组 hack 数据
  • 2022-06-05:又增加一组 hack 数据

题解

#include<iostream>
using namespace std;
int main(){
int a,b,s,max=0,day=0;
for(int i=1;i<8;i++){
cin>>a>>b;
s=a+b;
if ((s>max)&&(s>8)) max=s,day=i;
}
cout<<day;
return 0;
}

并不难,就不再多说了。


不高兴的津津(升级版)

题目描述

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

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

输入格式

第1行:一个数n

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

输出格式

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

样例 #1

样例输入 #1

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

样例输出 #1

-2

提示

所有数据:上学时间和上课时间各不超过8,和不超过16,n<=3000

题解

没啥区别,首先看下我的神(shen)犇(ben)同学写的代码啊
简直了,大聪明

#include <iostream>
using namespace std;
struct su{
int a,b,total;
} jin[3002];
int main(){
int n,s=0;
cin>>n;
jin[0].total=0;
for(int i=1;i<=n;i++){
cin>>jin[i].a>>jin[i].b;
jin[i].total=jin[i-1].total+jin[i].a+jin[i].b-8;
}
for(int i=1;i<=n;i++){
s+=jin[i].total;
}
cout<<s;
return 0;
}

不懂就问,为啥要建一个结构体?完全没必要!!
来来来,我来优化优化

// Author:PanDaoxi
#include <iostream>
using namespace std;
int main(){
int n,x,y,last=0,s=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>x>>y;
s+=(last+=x+y-8);
}
cout<<s;
return 0;
}