BOJ 2839送糖


https://www.acmicpc.net/problem/2839
2秒、128 MBメモリ
input :
  • N (3 ≤ N ≤ 5000)
  • output :
  • が送達した袋の最小数を出力する.N kg-1を正確に作れない場合は
  • を出力します
    条件:
    例えば、18 kgの糖を送達する必要がある場合、3 kgの袋を6個持参することができるが、5 kgの袋を3個、3 kgの袋を1個、より少ない袋を個送達することができる.
    5で割った分から0までです.
    残りの数字を3で割って、残りが0の場合、ansの答えを更新します.
    import sys
    
    n = int(sys.stdin.readline())
    ans = 99999
    five = n // 5
    
    while five > 0:
        if (n - five * 5) % 3 == 0:
            ans = min(ans, five + (n - five * 5) // 3)
        five -= 1
    
    if n % 3 == 0:
        ans = min(ans, n // 3)
    
    print(ans if ans != 99999 else -1)