十二星座
* * * *
拉格朗日计划
* * * *
十二星座

给定MM-DD HH:MM形式的时间,根据下表的日期输出对应的星座符号,按此表所确定的星座也叫太阳星座。

白羊    ♈    03.21-04.19
金牛    ♉    04.20-05.20
双子    ♊    05.21-06.21
巨蟹    ♋    06.22-07.22
狮子    ♌    07.23-08.22
处女    ♍    08.23-09.22
天秤    ♎    09.23-10.22
天蝎    ♏    10.23-11.22
射手    ♐    12.23-12.21
魔羯    ♑    12.22-01.19
水瓶    ♒    01.20-02.18
双鱼    ♓    02.19-03.20


此外,若上升星座与上表中所确定的太阳星座不同,则再输出上升星座。

上升星座由时刻和太阳星座共同确定,对应关系如下表:

          	♈	♉	♊	♋	♌	♍	♎	♏	♐	♑	♒	♓
-----------------------------------------------------------------------------------------------------------           
00:00-01:59	♒	♓	♈	♉	♊	♋	♌	♍	♎	♏	♐	♑
02:00-03:59	♓	♈	♉	♊	♋	♌	♍	♎	♏	♐	♑	♒
04:00-05:59	♈	♉	♊	♋	♌	♍	♎	♏	♐	♑	♒	♓
06:00-07:59	♉	♊	♋	♌	♍	♎	♏	♐	♑	♒	♓	♈
08:00-09:59	♊	♋	♌	♍	♎	♏	♐	♑	♒	♓	♈	♉
10:00-11:59	♋	♌	♍	♎	♏	♐	♑	♒	♓	♈	♉	♊
12:00-13:59	♌	♍	♎	♏	♐	♑	♒	♓	♈	♉	♊	♋
14:00-15:59	♍	♎	♏	♐	♑	♒	♓	♈	♉	♊	♋	♌
16:00-17:59	♎	♏	♐	♑	♒	♓	♈	♉	♊	♋	♌	♍
18:00-19:59	♏	♐	♑	♒	♓	♈	♉	♊	♋	♌	♍	♎
20:00-21:59	♐	♑	♒	♓	♈	♉	♊	♋	♌	♍	♎	♏
22:00-23:59	♑	♒	♓	♈	♉	♊	♋	♌	♍	♎	♏	♐


本题难度:



解答

12个星座按1到12月的顺序是从魔羯到双鱼,再从白羊到射手,为了避免模余运算,将这12个符号自复制一遍(即总长度为24)保存在z中。

先提取月份,每个月都包含两个星座,把分界日期保存在列表中,再提取日期信息比较后得太阳星座。

可以4-6点的上升星座与太阳星座完全一致,其余则呈轮转排列关系,因此提取时刻信息后即可计算出差值,根据差值输出上升星座。

最终代码有三行。

代码长度:189字节 vs. 全站第一:138字节。

import sys
z="♑♒♓♈♉♊♋♌♍♎♏♐"*2
for a in sys.argv[1:]:m=int(a[:2]);s=m-(int(a[3:5])<([i-50for i in b'HFEGFGHIIIII']*2)[m]);t=int(a[6:8])//2-2;print(z[s]+z[t+s]*(t!=0))