Dotcpp  >  编程题库  >  蓝桥杯算法提高VIP-Lots of Sunlight
题目 1965:

蓝桥杯算法提高VIP-Lots of Sunlight

时间限制: 3s 内存限制: 192MB 提交: 20 解决: 0

题目描述

公寓建设管理公司(Apartment Construction Management, 简称ACM)在上海郊区新建了几栋高层公寓楼。由于经济增长极为迅速,ACM期望通过出租房屋获得客观的利润。ACM打广告宣称他们的公寓比附近其他的公寓都要好,因为他们的公寓采光更好。没有其他的建筑物阻挡阳光直射到ACM的公寓楼上。
ACM想要证明自己的广告没有虚假成分,于是他们决定告诉潜在住户们每栋楼的采光究竟怎样。为了给消费者们有代表性的数据,公司决定将2005年4月5日的阳光直射时长写入广告。在那一天,上海于早上5点37分日出,于下午6点17分日落。



如上图所示,公寓楼从东至西排列,每栋楼有若干层,每层有一间公寓。公寓门牌号的后两位代表楼栋编号,最东侧的楼编号为01,从东至西编号递增。门牌号的其他所有位则代表楼层,1为一层,2为二层,以此类推。
太阳从东方升起,以恒定角速度划过天空,然后从西方落下。阴影仅由楼房投射出(也即,每栋楼可以投影到一栋或者多栋其他的楼房上)。当一间公寓的整块东侧或西侧外墙被太阳直射,或者当太阳处于公寓正上方时,我们就认为公寓受到太阳直射。

输入格式

输入含有若干组测试数据。一组测试数据首先含有一行,包括一个整数n,代表公寓楼的数量。接下来一行有两个整数w和h,分别代表一间公寓的宽度(东-西方向)和高度,单位为米。接下来一行有2n-1个整数,记作m(1), d(1), m(2), d(2), ... , d(n-1),m(n)。m(i)为编号为i的公寓楼的层数,d(i)为编号为i和i+1的公寓楼之间的距离,单位为米。
接下来的一行包含若干整数,以0结尾。每个整数代表求编号为这个整数的公寓的太阳直射时间。输入的最后一行仅包含一个整数0,你不需要处理这一行。
最多含有10组测试数据。

输出格式

对于每组数据,输出数据组数的编号。然后对于每个询问,用24小时格式输出太阳直射时间的起止时刻。所有时间向下取整到秒。允许输出与答案有最大1秒的误差。如果输入中含有不存在的公寓的编号,请将其指出。请按照样例输出中的格式输出。

样例输入

3
6 4
5 6 3 3 4
302 401 601 303 0
4
5 3
4 5 7 8 5 4 3
101 302 503 0
0

样例输出

Apartment Complex: 1
Apartment 302: 10:04:50 - 13:23:47
Apartment 401: 05:37:00 - 17:13:57
Apartment 601: Does not exist
Apartment 303: 09:21:19 - 18:17:00
Apartment Complex: 2
Apartment 101: 05:37:00 - 12:53:32
Apartment 302: 09:08:55 - 14:52:47
Apartment 503: 09:01:12 - 18:17:00

提示

零基础的同学可以先学习基础,教程见:  C语言教程C++教程编译器教程数据结构教程Python教程单片机教程

视频教学见视频网课

标签