[白俊1092]倍


📃 問題の説明


ボート


[問題の出所:金俊]

👨‍💻 解決策


n個のクレーンの最大重量は、
箱の重さをm個あげます.
箱を最短時間に移動するには가능한 한번에 많은 크레인이 동시에 움직여야 한다.うん.1.박스가 모두 옮겨질 때 까지 2.크레인이 옮길 수 있는 가장 무거운 박스를 옮김 3.모든 크레인을 확인했다면 result+1三重ゲートで解いたらタイムアウト.
うん.
箱を移動したかどうかを確認し、移動した箱の位置を表示します.
不要な比較を減らして、結果は通過しました.
夜叉

👨‍💻 ソースコード

n = int(input())
crane = sorted(list(map(int, input().split())), reverse=True)

m = int(input())
box = sorted(list(map(int, input().split())), reverse=True)

result = 0
count = 0

positions = [0] * n
checked = [0] * m

if box[0] > crane[0]:
    print(-1)
else:
    while count < len(box):
        for i in range(n):
            while positions[i] < len(box):
                if not checked[positions[i]] and crane[i] >= box[positions[i]]:
                    checked[positions[i]] = True
                    positions[i] += 1
                    count += 1
                    break
                positions[i] += 1
        result += 1
    print(result)