问题描述:
津津上初中了。
妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。
另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。
但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。
假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。
请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。
输入格式:
输入文件包括七行数据,分别表示周一到周日的日程安排。
每行包括两个小于10的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。
输出格式:
输出文件包括一行,这一行只包含一个数字。
如果不会不高兴则输出0,如果会则输出最不高兴的是周几(用1, 2, 3, 4, 5, 6, 7分别表示周一,周二,周三,周四,周五,周六,周日)。
如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。
输入样例:
5 3
6 2
7 2
5 3
5 4
0 4
0 6
输出样例:
3
(模拟,枚举) O ( n ) O(n) O(n);
思路:
用数组下标模拟周一到周日7天,然后用数组来存每一天在学校学习和在家学习的总时间。
然后枚举每一天 判断是否大于8
如果大于8 则输出这一天的编号;
如果枚举到最后一个元素 并且 该元素 小于等于8 则输出0
时间复杂度分析
对每天处理一次,枚举,所以时间复杂度是 O ( n ) O(n) O(n),其中n是总天数
C++代码
#include <iostream>
using namespace std;
const int N = 10;
int week[N];
int main()
{
int x;
for (int i = 1; i <= 7; i++ )
{
int x;
cin >> week[i];
cin >> x;
week[i] += x;
}
for (int i = 1; i <= 7; i++ )
{
if(week[i] > 8)
{
cout << i << endl;
break;
}
if(i == 7 && week[i] <= 8)
{
cout << '0' << endl;
}
}
return 0;
}