読者です 読者をやめる 読者になる 読者になる

Codeforces Round #377 (Div. 2) 参加記

はい。 oxx--- (0/0) 1133(-76) http://codeforces.com/contest/732
はい。Aのみ1完でした。Bはコーナーケースで落とし。Cはサンプルは通っても適当すぎたので当然に落とし。

A. Buy a Shovel

ざっくりと大意

・kの値を繰り返し使って?(1回ならk * 1、2回ならk * 2、...)末尾1桁が0かrと同じ値になるのは何回目のときか。

Python2

k,r=map(int,raw_input().split())
for i in range(1,200):
    tmp=i*k
    if tmp%10==0 or tmp%10==r:
        print i
        break

なぜかrange(1,200)にしてるけど10回目には必ず下1桁0になる気がする。と思ってテストケースを見に行ったけど10回までの間にrと同じになるらしい。一致したら出力でbreakしてるから良いのですけど何を根拠に200にしたんだろうか。。

B. Cormen — The Best Friend Of a Man

ざっくりと大意

・わんわんおを愛情を込めて飼うのにとある連続した2日間で必ずk回以上の散歩に行く。
・n日間の散歩の予定表の数列がa、i日目には\(a_i\)回行くスケジュールである。
・わんわんおがかわいいので連続した2日間でk回以上になるよう予定変更する。既にk回以上の日を減らすことはない。
・k回以上になるようにした場合の最小の増加回数が幾つか??

Python2

n,k=map(int,raw_input().split())
a=map(int,raw_input().split())
ans=chk=0
if n==1:
    print 0
    print a[0]
    exit()
for i in range(1,n):
    tmp=a[i]+a[i-1]
    if tmp<k:
        ans+=(k-tmp)
        a[i]+=(k-tmp)
print ans
print ' '.join(map(str,a))

本番では落とされたし、落ちた理由がわかってなかった。事後で書き直してACに。n=1で散歩計画が1日しかない場合は必要回数と予定回数にかかわらず変更しないのが正解になります。

C. Sanatorium

ざっくりと大意

・静養先での3食の食事の予定回数がb,d,sで与えられる。食事抜きにならないように最小で予定回数を増やす??
・各食事前に撤退することで3食全てが必要になるわけではない??
・サンプル1の流れは朝昼晩, 朝昼晩, 朝で撤退するイメージ。2回目の晩御飯に追加が必要。3日目は朝食べて撤退で他は追加の必要なし。
・あとで