1 条题解
-
0
题意分析
- 任务核心:
- 分析津津在给定天数内的学习时间,判断她是否会不开心(学习时间超过8小时)。
- 如果不开心,找出最不开心的那一天(学习时间最长的一天)。
- 输入输出要求:
- 输入:多组测试用例,每组第一行是天数 (),接下来 行每行两个非负整数(小于10),分别表示学校学习时间和补习班学习时间。
- 输出:若每天学习时间都不超过8小时,输出
0
;否则输出最不开心的那一天的序号。
解题思路
- 数据处理:
- 读取输入的天数 。
- 对于每一天,读取学校学习时间 和补习班学习时间 ,并计算当天总学习时间 。
- 比较与记录:
- 用
maxvalue
记录当前最大的总学习时间,初始值设为-1
(因为学习时间非负)。 - 用
maxday
记录最大总学习时间对应的天数。 - 遍历每一天,若当天总学习时间大于
maxvalue
,则更新maxvalue
和maxday
。
- 用
- 结果输出:
- 遍历结束后,判断
maxvalue
是否小于等于8。 - 若
maxvalue
小于等于8,输出0
,表示津津每天都开心。 - 否则,输出
maxday
,表示津津最不开心的那一天。
- 遍历结束后,判断
示例代码(标准程序)
#include <stdio.h> int main() { while (1) { int i, n; int maxday, maxvalue = -1; scanf("%d", &n); if (n == 0) break; for (i = 1; i <= n; i++) { int a, b; scanf("%d%d", &a, &b); if (a + b > maxvalue) { maxvalue = a + b; maxday = i; } } if (maxvalue <= 8) printf("0\n"); else printf("%d\n", maxday); } return 0; }
注意事项
- 输入处理:
- 循环读取多组测试用例,每组测试用例以 结束。
- 确保输入的 在有效范围内()。
- 变量初始化:
maxvalue
初始化为-1
,确保第一天的学习时间能正确更新maxvalue
。
- 输出格式:
- 严格按照题目要求输出,注意
0
和具体天数的输出格式。
- 严格按照题目要求输出,注意
复杂度分析
- 时间复杂度:
- 对于每组测试用例,需要遍历 天,每次遍历进行简单的加法和比较操作,时间复杂度为 。
- 整体时间复杂度取决于测试用例的数量和每组测试用例的天数,假设测试用例数量为 ,则总时间复杂度为 。
- 空间复杂度:
- 程序只使用了几个固定的变量,如
i
、n
、maxday
、maxvalue
、a
、b
等,空间复杂度为 。
- 程序只使用了几个固定的变量,如
- 任务核心:
- 1
信息
- ID
- 1656
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 5
- 已通过
- 1
- 上传者