[Python] ABC005 C

問題

C – おいしいたこ焼きの売り方

回答

while, forループのelse

pythonには、for-elseという構文があり、 「ループ処理で探索をして見つけたらbreak、breakしなかったら見つからなかった」というケースでフラグ変数を使わずに書くことができます。

import sys
# input処理を高速化する
input = sys.stdin.readline

def main():
    # 何秒以内のたこ焼きまで売るか
    T = int(input())
    # たこ焼きの総数
    N = int(input())
    # たこ焼きが何秒後にできるか
    lst_a = list(map(int, input().split()))
    # お客さんの人数
    M = int(input())
    # お客さんが何秒後に来るか
    lst_b = list(map(int, input().split())) 

    if M > N:
        print('no')
        return
    
    for b in lst_b:
        for a in lst_a:
            if a <= b and b <= a + T:
                lst_a.remove(a)
                break
        else:
            print('no')
            break
    else:
        print('yes')

main()