ABC001は参加せず後日練習。
Dだけちょっとめんどくさいね。
せっかくなのでPythonで。
http://abc001.contest.atcoder.jp/assignments
A - 積雪深差
2つの数値が与えられるので、差を出力せよ。
やるだけ。
a=input() b=input() print "%d" % (a-b)
B - 視程の通報
ルールに則って風速をパラメータに変換せよ。
メートルのまま計算するだけ。
import sys m=input() d=0 if m<100: d=0 elif m<=5000: d=m/100 elif m<=30000: d=m/1000+50 elif m<=70000: d=(m/1000-30)/5+80 elif m>70000: d=89 print "%02d" % d
C - 風力観測
角度と速度が与えられるので、それを方位と風速パラメータに変換せよ。
素直にルールに従うだけ。
分岐をたくさん書くと面倒なので、テーブル処理した。
何気に小数の誤差対策でかなり手間取った…。
import sys D,S=map(int,raw_input().strip().split(" ")) w=0 tab=["N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW","N"] wd=[0.0,0.3,1.6,3.4,5.5,8.0,10.8,13.9,17.2,20.8,24.5,28.5,32.7] S=int((S/60.0+0.05)*10+0.0001)/10.0 w=0 for r in range(0,len(wd)): if S>=wd[r]: w=r if w==0: print "C 0" else: print "%s %d" % (tab[int((D/10.0+11.25)/22.50)],w)
D - 感雨時刻の整理
雨が降っていた時間レンジがいくつか与えられる。
それぞれを統合して、5分間隔で雨が降っていた期間を示せ。
時間を5分区切りにして、5分毎に雨の有無を配列に入れ、配列をたどりながら時間を表示する。
import sys N=input() bm=[0 for j in range(24*12+1)] for i in range(N): x,y=map(int,raw_input().strip().split("-")) x=x/100*60+x%100 y=y/100*60+y%100 if x%5 > 0: x-=x%5 if y%5 > 0: y+=5-y%5 for z in range(x,y,5): bm[z/5]=1 i=0 while i<=24*12: if bm[i]==0: i+=1 continue s=i while i<=24*15 and bm[i]==1: i+=1 print "%02d%02d-%02d%02d" % (s/12,s%12*5,i/12,i%12*5)
まとめ
まだCよりPythonの方が書くのに時間かかるな…。