Good Bye 2016
はい。
http://codeforces.com/contest/750
A. New Year and Hurry
ざっくりと大意
・4時間240分のコンテストにk分遅刻して参加する。
・i問目を解くのにi * 5分かかる。何問解けるか。
Python3
n,k=map(int,input().split()) k=240-k ans=0 chk=1 while (k-chk*5>=0): ans+=1 k-=chk*5 chk+=1 print(min(ans,n))
遅刻から残り時間を計算して、更にi * 5分を減らし続けて何問目まで出来るかを計算する。
B. New Year and North Pole
ざっくりと大意
・地球が球状で1周4万キロ、北極点から南極点までは2万キロ。
・移動中でも新たな移動前で待機中でも北極点から移動できるのは南に向かってだけ。
・同様に南極点から移動できるのも北に向かってだけ。
・全ての移動命令が処理できて、かつ北極点にいるならYES、そうでなければNO。
Python3
n=int(input()) ans=chk=0 for i in range(n): t,d=map(str,input().split()) t=int(t) if (chk==0 and d=='South' and t<=20000): chk+=t elif (chk==0): ans=1 elif (chk==20000 and d=='North' and t<=20000): chk-=t elif (chk==20000): ans=1 elif (d=='North' and chk-t>=0): chk-=t elif (d=='North'): ans=1 elif (d=='South' and chk+t<=20000): chk+=t elif (d=='South'): ans=1 if chk==0 and ans==0: print('YES') else: print('NO')
コンテスト当時は問題文を把握できなかった記憶。読み取り終われば移動をシミュして問題文の判定通りに出力すれば大丈夫。北極点、南極点は通過が出来ないのと東西への移動もできないのが注意。あとは場合分けを慎重に書けばなんとかなるはず。
C. New Year and Rating
ざっくりと大意
・レーティング1900以上がDiv1で、1899以下がDiv2である。また、レーティングは正の数、負の数または0などの加減で変動が発生することがある。
・\(c_i\)は変動の数、\(d_i\)はその時のDiv1,Div2のランクの数。
・n回の成績表から開始時のレーティングが定まればその数を、矛盾があるならImpossible、定められないならInfinityを出力。
・サンプル2の1回目がDiv1で正の成績なのに、2回目でDiv2にいるのは矛盾があるのでImpossible。
・サンプル3の1回目がDiv1で負の成績だが、それだけでは定まらないのでInfinity。
・あとで。