题目描述
津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。
输入格式
输入包括 77 行数据,分别表示周一到周日的日程安排。每行包括两个小于 10 的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。
输出格式
一个数字。如果不会不高兴则输出 0,如果会则输出最不高兴的是周几(1,2,3,4,5,6,7 分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。
输入输出样例
输入 #1
5 3 6 2 7 2 5 3 5 4 0 4 0 6
输出 #1
3
解题心得
看到输入类型第一反应是二维数组,本篇题解也是这样的。用二维数组存储一周七天的输入信息,遍历数组求和得到 sum,然后用if语句和 max 判断大小。
只有超过8小时才有比较的必要,同时设置一个max 与 sum 比大小,保证在时间相同的情况下,优先记录时间靠前的一天。
Python解题代码
arr = [[0]*2 for i in range(7)] # 初始化二维数组
sum, max = 0, 0
num = 0 # 记录最不开心的是哪一天
for i in range(7):
arr[i][0], arr[i][1] = map(int, input().split())
sum = arr[i][0] + arr[i][1]
if sum > 8: # 超过8小时津津不开心
if sum > max: # 优先记录时间靠前的一天,要时间更长才能更新max
max = sum
num = i
if max == 0:
print(0)
else:
print(num+1) # i从0到6循环,表示星期几需要+1
思维发散区
津津好惨。题目符合双减(狗头)
本题由于数据量是确定的,只要比较结果,是不需要存储数据的。于是我们可以直接省去初始化二维数组这个步骤,sum也不需要定义,直接用相加表示即可。
if的两个条件是同时满足,用并列条件写到一行即可。
a, b = 0, 0 # a, b代表每一行的两个数
max = 0
num = 0
for i in range(7):
a, b = map(int, input().split())
if ( a+b > 8 ) and ( a+b > max ):
max = a+b
num = i
if max == 0:
print(0)
else:
print(num+1)