[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
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 数据
1.题意解析
先定义一个变量is_happy
,储存津津是否开心。然后预处理。如果津津开心就直接输出0
,否则将数组排序,输出第一天不开心的星期数。代码比较精简。
2.AC代码
#include<bits/stdc++.h>
using namespace std;
struct day
{
int hour,num;
day(int _num,int _hour):num(_num),hour(_hour){}
day(){}
}a[8];//储存每一天的上课时间和星期数
int maxn;
bool is_happy=true;//记录津津是否开心
bool cmp(day a,day b)//排序规则
{
if(a.hour==b.hour)return a.num<b.num;
return a.hour>b.hour;
}
int main()
{
for(int i=1;i<=7;i++)//输入和预处理
{
int in_shool,out_shool;
cin>>in_shool>>out_shool;
a[i]=day(i,in_shool+out_shool);
if(a[i].hour>8)is_happy=false;
}
if(is_happy)//如果开心,直接输出0
{
cout<<0;
return 0;
}
sort(a+1,a+8,cmp);//排序
cout<<a[1].num;
return 0;
}
喜欢就订阅此专辑吧!
【蓝胖子编程教育简介】
蓝胖子编程教育,是一家面向青少年的编程教育平台。平台为全国青少年提供最专业的编程教育服务,包括提供最新最详细的编程相关资讯、最专业的竞赛指导、最合理的课程规划等。本平台利用趣味性和互动性强的教学方式,旨在激发孩子们对编程的兴趣,培养他们的逻辑思维能力和创造力,让孩子们在轻松愉快的氛围中掌握编程知识,为未来科技人才的培养奠定坚实基础。
欢迎扫码关注蓝胖子编程教育