# -*- coding: utf-8 -*-
"""
金額とお札の枚数（プログラム）
"""
# これは，難易度１を達成するプログラムのソースコードです．
# これを流用する場合は，内容を理解し，コメントを追加しなさい．
# 難易度２以上の達成を目指すには，このコードからでは遠回りになる場合があります．
# きちんと自分で考えて試行錯誤することが大切です．


# 金額とお札の枚数の組み合わせを総当たりで探す
# どうすれば不要／負荷の大きい計算を減らせるかが，難易度２の鍵
# 多重ループや乗算除算は時間増加の原因になりやすい
def keisan(kingaku, maisuu):
    # １万円札を0枚から上限まで
    for i in range(kingaku//10000 + 1):
        # ５千円札を0枚から上限まで
        for j in range(kingaku//5000 + 1):
            # 千円札を0枚から上限まで
            for k in range(kingaku//1000 + 1):
                # ピッタリならそれを戻す
                maisuu_tmp  = i + j + k
                kingaku_tmp = 10000*i + 5000*j + 1000*k
                if (maisuu_tmp == maisuu) and (kingaku_tmp == kingaku):
                    return [i, j, k]
    
    # 見つからなかったら負の値を戻す
    return [-1, -1, -1]


def main():
    # 金額と枚数の入力
    kingaku = (int(input("金額：")) // 1000) * 1000
    maisuu  = int(input("枚数："))
    print()  # 採点の都合上の空行 

    # 計算
    osatsu = keisan(kingaku, maisuu)

    # osatsuに正の結果が代入してあれば，組み合わせが見つかった
    if (osatsu[0] >= 0) and (osatsu[1] >= 0) and (osatsu[2] >= 0):
        print(f"１万円札は {osatsu[0]} 枚")
        print(f"５千円札は {osatsu[1]} 枚")
        print(f"　千円札は {osatsu[2]} 枚")
    else:
        print("組み合わせは見つかりませんでした")
    
    input("\nEnterを押してプログラムを完全終了")



if __name__ == "__main__":
    main()
