P1178 到天宫做客

题目描述

有一天,我做了个梦,梦见我很荣幸的接到了猪八戒的邀请,到天宫陪他吃酒。我犹豫了。天上一日,人间一年啊!当然,我是个闲人,一年之中也没有多少时日是必须在人间的,因此,我希望选一个最长的空闲时间段,使我在天上待的时间尽量长。记住,今年是40004000年。天上一天也是2424小时,每小时6060分,每分6060秒。

输入格式

第一行是一个非负整数 N,表示4000年中必须呆在人间的天数。

以下共NN行,每行两个用空格隔开的正整数,即日期(月,日),输入文件保证无错误,日期无重复。

输出格式

一个非负整数,即在天上的时间(四舍五入精确到11秒)。

输入输出样例

输入 #1复制

2
3 8
12 2

输出 #1复制

63266

代码来咯:

#include<iostream>
#include<algorithm>
using namespace std;
int num[66666],ans;
double k;
int f[13]={0,0,31,60,91,121,152,182,213,244,274,305,335};
//预处理每月的天数,注意C++的默认数组下标是从0开始的
int main(){
	int i,a,b,n;
	
	cin>>n;
	
	for (i=1; i<=n; i++){
		cin>>a>>b;
		num[i]+=f[a];
		num[i]+=b;//处理天数
	}
	sort(num+1,num+n+1);//STL模板的sort快排
	num[n+1]=367; //一年的末尾(想一想为什么要用367)
	for (i=1; i<=n+1; i++){
    //注意这里是从1开始循环,因为num数组是在main函数外定义的,所以num[0]值为0,因此可以处理第一段时间
		ans=max(num[i]-num[i-1]-1,ans);//ans取最大值
	}
	k=(ans*1.0*24*3600/366)+0.5;//处理时间,注意四舍五入,加上0.5在换成整数是很常见的方法
	ans=k;//强制转化为整数
	
	cout<<ans;//输出,完事
	
	return 0;
} 

求点赞加关注!!!! 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值