[NOIP2004 普及组] 不高兴的津津
题目描述
津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。
输入格式
输入包括 7 7 7 行数据,分别表示周一到周日的日程安排。每行包括两个小于 10 10 10 的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。
输出格式
一个数字。如果不会不高兴则输出 0 0 0,如果会则输出最不高兴的是周几(用 1 , 2 , 3 , 4 , 5 , 6 , 7 1, 2, 3, 4, 5, 6, 7 1,2,3,4,5,6,7 分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。
样例 #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 数据
声明:本题不建议参考,因为解题过程比较复杂(?),那我为啥放出来呢?因为写这个代码查了好多,以后拿来复习复习
思路:
- 输入数据存入列表l(在第一个for语句里面一定要用同时输入两个数据的语句…
- 求和把和存入列表m
- 遍历求题目要求的
细节:遍历环节要用if语句判断这个星期时间是否大于八小时,同时使用计数器count。另一个是m[z]>mi,这个可以取到时间相同但是索引更小的数。(当然这一整个if语句都很重要
l=[0]
for i in range(1,8):
a,b=map(int,input().split())
l.append(a)
l.append(b)
m=[0]
mi=0
count=0
for x in range(1,15,2):
m.append(l[x]+l[x+1])
for z in range(1,8):
if m[z]<=8:
count=count+1
else:
if m[z]>mi:
mi=m[z]
a=z
if count==7:
print('0')
else:
print(a)
收获/总结:
1、用python3的列表解法写的好繁琐(放在比赛早无了),不过对for循环和range函数更熟悉了
2、有了一个新的思路:如果题目要求从多组数据中筛选出一组数据,可以使用多个序列,然后放到一个序列里面去(指可变序列
以后不可以这样写python了,太繁琐了