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

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

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

Codeforces Round #125 (Div.2)

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

A. Hexadecimal's theorem

brute force,constructive algorithms,implementation,number theory

ざっくりと大意

・整数nが与えられるのでフィボナッチ数に含まれているいずれかの数を3つ使って和がnになるようなa,b,cを出力

方針のようなもの

・nの最大が109なら全部調べられるような

import itertools
#10**9+7
mod=1000000007
#start = time.clock()
n=int(raw_input())


def fib(n):
    a,b=0,1
    l=[0]
    while 1:
        l.append(a)
        if a>n:
            break
        a,b=b,a+b
    return l

chk=fib(n)
if n in chk:
    print 0,0,n
    exit()
else:
    chk.pop(0)
    np=list(itertools.combinations(chk,3))
    for i in np:
        if sum(i)==n:
            print i[0],i[1],i[2]
            exit()
    print "I'm too stupid to solve this problem"

これも2年前にリアルタイムで参加していた回の問題。AC出ていないまま放置していたのを割とあっさりと通したので成長してるんだかしてないんだか。。。
出力結果は3つの数がいずれもフィボナッチ数で和がnになれば条件を満たすのdフィボナッチ数のリストを作った中にnがあれば0,0,nで条件を満たして終了。昇順降順すら問われないです。

C. About Bacteria

ざっくりと大意

バクテリア退治をする、試験管の中にバクテリアがいる
・それぞれのバクテリアは毎秒kに分裂増殖する
・いくつかの異常なバクテリアbも発生する
・n秒後にはzバクテリアが存在することになる
・tバクテリアから開始してz以上になるのは何秒後か??

方針のようなもの

・各数字が最大で106までなら素直に計算して大丈夫か期待したけどそんなわけなかった