yokobuttonの不定期で競技プログラミングをするブログ

不定期で解けた競技プログラミングコンテストの問題を載せています。

AtCoder Beginner Contest 243 A - Shampoo

問題の要約
 父、母、T君の順に風呂に入り、それぞれシャンプーをA,B,Cミリリットル使う。
 今朝の時点で、ボトルにはVミリリットルのシャンプーが残っていた。
 このまま、補充しないとき、初めてシャンプーが不足するのは誰が使おうとしたときか?
制約
 1<=V,A,B,C<=10^5
入力
 V A B C
出力
 初めてシャンプーが不足するのが、父ならばF,母ならばM,T君ならばTを出力せよ。
考え方
 1,まず1日だけ考える。
  AがVより大きければ父である。
  そうではなく、A+BがVより大きければ母である。
  そうではなく、A+B+CがVより大きければT君である。
 2,1日では終わらない場合を考えたい。
  1の条件を全部判定した後、VからA+B+Cを引いて次の日の判定をする。
  これをVが0以上のとき繰り返す。

実際のプログラム
#include<iostream>

using namespace std;

int main(){
  int V,A,B,C;
  cin >> V >> A >> B >> C;
  
  while(0 <= V){
    if(V < A){
      cout << "F" << endl;  
    }else if(V < A+B){
      cout << "M" << endl;
    }else if(V < A+B+C){
      cout << "T" << endl;
    }
    V = V-(A+B+C);
  }
  return 0;
}