[NOIP2004 普及组] 不高兴的津津
题目描述
津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。
输入格式
输入包括 7 行数据,分别表示周一到周日的日程安排。每行包括两个小于 10 的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。
输出格式
一个数字。如果不会不高兴则输出 0,如果会则输出最不高兴的是周几(用 1,2,3,4,5,6,7 分别表 示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。
样例 #1
样例输入 #1
1 2 3 4 5 6 7
| 5 3 6 2 7 2 5 3 5 4 0 4 0 6
|
样例输出 #1
提示
NOIP2004 普及组第 1 题
- 2021-10-27:增加一组 hack 数据
- 2022-06-05:又增加一组 hack 数据
题解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| a1 = list(map(int, input().split())) a2 = list(map(int, input().split())) a3 = list(map(int, input().split())) a4 = list(map(int, input().split())) a5 = list(map(int, input().split())) a6 = list(map(int, input().split())) a7 = list(map(int, input().split())) if a1[0] + a1[1] > 8: print(1) else: if a2[0] + a2[1] > 8: print(2) else: if a3[0] + a3[1] > 8: print(3) else: if a4[0] + a4[1] > 8: print(4) else: if a5[0] + a5[1] > 8: print(5) else: if a6[0] + a6[1] > 8: print(6) else: if a7[0] + a7[1] > 8: print(7) else: print(0)
|
第一次我是这么做的,发现有一个没通过,检查一下发现是漏了一个条件,要输出最不高兴的,所以还要做一个时间的判断
改进一下代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| a1 = list(map(int, input().split())) a2 = list(map(int, input().split())) a3 = list(map(int, input().split())) a4 = list(map(int, input().split())) a5 = list(map(int, input().split())) a6 = list(map(int, input().split())) a7 = list(map(int, input().split())) max_hours = 0 max_day = 0 if a1[0] + a1[1] > max_hours: max_hours = a1[0] + a1[1] max_day = 1
if a2[0] + a2[1] > max_hours: max_hours = a2[0] + a2[1] max_day = 2
if a3[0] + a3[1] > max_hours: max_hours = a3[0] + a3[1] max_day = 3
if a4[0] + a4[1] > max_hours: max_hours = a4[0] + a4[1] max_day = 4
if a5[0] + a5[1] > max_hours: max_hours = a5[0] + a5[1] max_day = 5
if a6[0] + a6[1] > max_hours: max_hours = a6[0] + a6[1] max_day = 6
if a7[0] + a7[1] > max_hours: max_hours = a7[0] + a7[1] max_day = 7
if max_hours <= 8: max_day = 0 print(max_day)
|
完美AC
题解解释
这段代码首先从标准输入读取7行输入,每行包含两个整数,用空格分隔。这些输入分别存储在a1到a7的列表中。
然后,通过比较每一天的工作小时数(列表中的两个整数之和),找到工作最多的一天,并记录该天的索引。索引从1开始,表示一周中的第几天。
最后,如果最大工作小时数不超过8小时,则将max_day设置为0,表示一周中没有超过8小时的工作日。
最终输出的是最大工作小时数超过8小时的那一天的索引(从1到7),或者如果所有天的工作小时数都不超过8小时,则输出0。
知识点
复习一下读取输入的知识
CSDN发现一个大佬写的,搬运一下
https://blog.csdn.net/m0_46204224/article/details/109049999#/Input_44