青橋くんが祖父から受け取ったというお年玉の状況が、実際にありうるかどうか判定し、ありうる場合にはお年玉袋の中身の候補を一つ出す問題です。
提出
n, y = map(int, input().split())
for i in range(n+1):
for j in range(n+1-i):
if 10000*i+5000*j+1000*(n-i-j) == y:
print(i, j, n-i-j)
exit(0)
print("-1 -1 -1")
N の制約が「1≤N≤2000」であるため、10000 円札、5000 円札、1000 円札のパターンを調べる全探索では、時間が足りません。
全部で N枚であることは分かっているため、10000 円札、5000 円札の全パターンに対して、残りの枚数を1000 円札だと考えた際に、ありうるかどうかを判定します。
ありうる場合には、その時の枚数をそれぞれ出力してプログラムを終了します。
いくつか候補がある場合にも、どれかを出力すればいいので、出力例と違っていても問題ありません。
ループ処理が途切れず終わった場合、候補がなかったということなので、「-1 -1 -1」を出力します。