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

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

はい。 ox--- (0/0)
http://codeforces.com/contest/546
B問題がちょろそうに見えて実際チョロかったんですけど、しょうもないミスしてWAでした。というかやはりC問題以降も手を出していかないとコレ以上はレート上がらないっぽいのでアレ。

A. Soldier and Bananas

ざっくりと大意

・バナナが1個目はkドル、2個目は2kドル、i個目はikドルのときに手持ちnドルでw個のバナナを買うためには何ドル借りる必要があるか。

方針のようなもの

w個のバナナを買うために必要なドルと手持ちのnドルを比較する。

python

k,n,w=map(int,raw_input().split())
ans=chk=0
for i in range(1,w+1):
    ans+=i*k
print ans-n if ans>n else 0

手持ちのが多くて借りる必要がない場合を0にし忘れなければ特に引っかかるところは無いと思う。

B. Soldier and Badges

ざっくりと大意

・兵士n人にn個のバッジを配る。 ・兵士とペアになるバッジの要素のaが1つ前の人より大きくなければいけない??

方針のようなもの

ソートして小さい方から使う。

python

n=int(raw_input())
l=map(int,raw_input().split())
ans=chk=0
l.sort()
tmp=l[0]
for i in range(1,n):
    if tmp>=l[i]:
        chk=tmp-l[i]+1
        ans+=chk
        tmp+=1

    else:
        tmp=l[i]
print ans

WAだったので事後に再提出でACになったものです。。WA時は10行目のtmpにchkを足してしまうというミスをしてました。。1つ前のものより1だけ大きければよいという条件のはず。