守望者脱出C++プログラム


タイトルの説明
悪魔ハンターのユディアンは野心的で、暗夜の精霊を裏切って、海底に深く隠れているナガ族を率いて反乱を企んだ.見張りはユディアンとの戦いで包囲殺され、荒れ果てた島に閉じ込められた.見張り人を殺すために、ユディアンはこの荒島に呪いをかけ始め、この島はすぐに沈む.その時になると、島のすべての人が遭難します.見張り人のランニングスピードは17 m/sで、このようなスピードでは島から逃げられない.幸いなことに、守望者は点滅法術を持ち、1 s以内に60 m移動できるが、点滅法術を使うたびに魔法値10点を消費する.守望者の魔法値回復速度は4時/sで、その場で休憩している場合にのみ回復します.
現在、見張り人の魔法の初期値Mが知られており、彼の初期位置と島の出口との間の距離S、島が沈没した時間Tである.あなたの任務は、見張り人が最短時間で島を脱出する方法を計算し、脱出できない場合は、見張り人が残りの時間で歩ける最も遠い距離を出力するプログラムを書くことです.注意:見張り人はランニング、点滅または休憩活動を秒(s)単位で行い、各活動の持続時間は整数秒である.距離の単位はメートル(m)です.
にゅうしゅつりょくけいしき
入力フォーマット:ファイルescape.inスペースで区切られた3つの非負の整数M,S,Tを含む1行のみ.
出力フォーマット:出力ファイルescape.outには2行あります.
1行目の文字列「Yes」または「No」(大文字と小文字を区別)は、見張り人が島から脱出できるかどうかです.
2行目には整数が含まれます.第一行為「Yes」(大文字と小文字を区別)は、見張り人が島から脱出する最短時間を表す.第一行為「No」(大文字と小文字を区別する)は、見張り人が歩ける最も遠い距離を表す.
入出力サンプル
入力サンプル#1:【入力サンプル1】39,200 4【入力サンプル2】36,255,10出力サンプル#1:【出力サンプル1】No 197【出力サンプル2】Yes 6
この問題はいくつかの状況がある1、走るのがきらめくよりもっと優れている2、ずっときらめいて、魔法の値が足りないなら止まって休んで、走るよりもっと優れている3、先にきらめいてから走る
私たちは2人の見張り人がいると仮定することができて、1人は走るだけで、もう1人はきらめくだけで、2つは同時に行って、1つ目と2つ目は理解しにくくなくて、肝心なのは3つ目で、私たちの2人の見張り人は役に立ちました.点滅する見張り人が走る見張り人よりも逃げる距離が遠くなると、点滅する見張り人の脱出距離をランニングの見張り人に与え、見張り人が先に点滅してから逃げることを代表して、すべての状況を処理することができる.
#include
#include
using namespace std;
int main()
{   
    int m,s,t;
    cin>>m>>s>>t;
    int y=1,sz=0,pz=0;
    while(y<=t){ 
      if(m>=10){sz+=60;m-=10;}
      else {m+=4;}
      pz+=17;
      if(sz>pz){pz=sz;}
      if(pz>=s){break;}
      y++;
    }
    if(y<=t){cout<<"Yes"<else {cout<<"No"<return 0;

}
   
   
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21