时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日。 输入格式 输入包含恰好一行,有五个整数a, b, c, y1, y2。其中c=1, 2, ……, 6, 7分别表示星期一、二、……、六、日。 输出格式 对于y1和y2之间的每一个年份,包括y1和y2,按照年份从小到大的顺序输出一行。 样例输入 5 2 7 2014 2015 样例输出 2014/05/11 评测用例规模与约定 所有评测用例都满足:1 ≤ a ≤ 12,1 ≤ b ≤ 5,1 ≤ c ≤ 7,1850 ≤ y1, y2 ≤ 2050。 |
我不说什么了,先打个表把所有日期是星期几记录下来,剩下的不会公式就一天天数嘛~
while True:
try:
mon = [1,3,5,7,8,10,12]
day = [[[0 for i in range(50)]for i in range(13)]for i in range(2051)]
a,b,c,y1,y2 = map(int,input().split())
# day[1850][1][1]=1
# print(day[1850][1][1])
cnt = 1
for i in range(1850,2051):
for j in range(1,13):
for k in range(1,32):
if (i%100!=0 and i%4==0) or i%400==0:
if j==2 and k>29:
break
#elif (not j in mon) and
else:
if j==2 and k>28:
break
if (not j in mon) and k>30:
break
# if i==1850 and j==1 and k==1:
# print(cnt)
#cnt+=1
day[i][j][k] = cnt%7+1
cnt+=1
# print(day[1850][1][31])
# print(day[2014][5][1])
#print(day[2015][5][1])
for i in range(y1,y2+1):
t=0
for j in range(1,32):
if day[i][a][j]==c:
t+=1
if t==b:
print('%d/%.2d/%.2d' %(i,a,j))
break
if t<b:
print('none')
# e = d-c
# f=0
# if e>0:
# f = 1+7*b-e
# elif e==0:
# f = 1+7*(b-1)
# else:
# f = 1+7*b-d
# if day[i][a][f]>0:
# print('%d/%.2d/%.2d' %(i,a,f))
# else:
# print('none')
except:
break