[白俊/c+]2839号送糖


2839号:砂糖配達
に答える
尚根が3 kg袋と5 kg袋を利用して正確にN kgを配送する際、必要な袋の最低個数を求めるプログラムだ.3キロと5キロの袋で正確にNキロを作ることができなければ、-1を出力します.
最適なのは5キロの袋を多く使うことです.このため、N kgの配送に使える5 kg袋の最大値により、1袋あたり5 kgの数が1個減少した.袋の数を5キロ減らすごとに、3キロの袋に入った砂糖の重さが変わります.この場合、3 kgの袋に入っている砂糖の値を3 kgの袋で全部入れることができれば、この場合は袋を使うのが一番少ない方法です.
コード#コード#
#include <iostream>
using namespace std;
int main(){
  int N, count = 0;
  cin >> N;

  for (int i = N / 5; i >= 0; i--){
    int temp = N - (5 * i);

    if (temp % 3 == 0){
      count = i + (temp / 3);
      break;
    }
  }
  if (count) cout << count;
  else cout << "-1";
    
  return 0;
}