[白俊]#2839


#2839


ビューを展開
PROBLEM
尚根は最近砂糖工場で砂糖を送った.尚根は今、キャンディ屋に正確にNキロの砂糖を送る.砂糖工場で生産された砂糖は袋に入っている.袋は3キロ袋と5キロ袋があります.
尚根は面倒なので、できるだけ少ない袋を持っていきたいと思っています.例えば、18キロの砂糖を配達する必要がある場合は、3キロの袋を6つ持ってもいいですが、5キロと3キロを3つ配達すれば、より少ない数の袋を配達することができます.
尚根がNキロの砂糖を正確に配達する必要がある場合は、いくつかの袋を持っていくことができるかどうかを確認するプログラムを作成してください.
INPUT:1行目にNがあります.(3 ≤ N ≤ 5000)
OUTPUT:上本送達袋の最小数を出力します.もし、N kgを正確に作れなかったら、-1を出力します.
EXAMPLE 1
input
18
output
4
EXAMPLE 2
input
4
output
-1
EXAMPLE 3
input
6
output
2
EXAMPLE 4
input
9
output
3
EXAMPLE 5
input
11
output
3
RESULT
結果メモリ時間言語コード長import sys input = int(sys.stdin.readline()) max_size = input // 5 answer = 0 if (max_size == 0 and input % 3 != 0) or input == 0: print(-1) else: for i in range(max_size, -1, -1): left = input - (5 * i) if left % 3 == 0: answer = i + left//3 break answer = i print(answer)