ABC 083 C Multiple Gift と ARC 006 C 積み重ね

qiita.com

続きです。

https://atcoder.jp/contests/abc083/tasks/arc088_a

倍々にしていけば取れる

x, y = map(int, input().split())
ans = 0
while x <= y:
    ans += 1
    x *= 2
print(ans)

あ、やっぱ、mapとname使わんことにした。

https://atcoder.jp/contests/arc006/tasks/arc006_3

考えたこと

新しい段ボールと最も近い段ボールの上に乗せるという貪欲法。見つけるところを、2 分探索にしなくても通った。

解法

n = int(input())
t = []
for i in range(n):
    w = int(input())
    for j in range(len(t)):
        if t[j] >= w:
            t[j] = w
            break
    else:
        t.append(w)
    t.sort()
print(len(t))