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

君はまるで砂漠に咲く、一輪の花。

僕はその花に引き寄せられる蝶。

Codeforces Round #358 (Div.2)

はい。
http://codeforces.com/contest/682

A. Alyona and Numbers

ざっくりと大意

・1<=x<=n, 1<=y<=m でxとyの和で5で割り切れるようなものがいくつあるか。

Python2

n,m=map(int,raw_input().split())
ans=chk=0
l=[]
for i in range(1,n+1):
    ans+=(m-(5-(i%5)))/5+1
print ans

前にヴァーチャルで練習した時に ans+=(i+m)/5-i/5 で計算してた形跡があるけど、なんでコレで合ってる、思いついたのかさっぱりわからん。。。今回は余りが0から4の時によって適当に計算しました。  

B. Alyona and Mex

ざっくりと大意

・Alyonaに長さnの数列aを与えた。Alyonaはその中の数を幾つかを選んで減算することが出来る。
・Alyonaは減算を何回もするかもしれないし、1回もしないかもしれない?
・それらの処理をしたあとの数列bに現れない、作れない最小の数はいくつか??
・サンプル1の1 3 3 3 6では3を減算して2を作り、6を減算して4が作れる。現れない最小の数は5となる。

Python2

n=int(raw_input())
l=map(int,raw_input().split())
ans=chk=0
l.sort()
for i in l:
    if i>chk:
        chk+=1
print chk+1

ソートしてなんとなく終端まで加算すると数列bの最大値が求まって、それより1大きいのが解になるイメージ。