Loading Now

survivalGame

Đạt được 1 người bạn nhờ mô phỏng kết quả của 1 game sinh tồn.

Game xoay quanh việc người đàn ông gọi là P nhảy qua các khe nứt để thoát khỏi con quái vật.

P có 1 thanh thể lực gọi là s viết tắt của Stamina (thể lực) để hiện thị số stamina hiện còn lại.

Lưu ý: số Stamina tối đa là cố định.

Quái vật có 1 móc thời gian gọi là tt là thời gian cần để nó tóm được P. Các khe nứt được lưu thành 1 dãy k với k[i] là lượng thể lực cần để vượt qua.

Nếu P không đủ thể lực nhảy qua khe nứt thì ngồi nghỉ tới khi nào có thể nhảy qua khe kế tiếp đó. Biết cứ mỗi 6 giây ngồi nghỉ sẽ hồi 3 thể lực nhưng con quái vật sẽ tiến lại gần hơn mỗi khi P ngồi nghỉ.

Nếu time <= 0 hoặc Player ko nhảy qua hết được các khe nứt thì Player sẽ bị tóm (trả về true). Nếu Player vượt qua hết tất cả các khe nứt thì sẽ sống (trả về false).

ví dụ:

  • Với k[] = { 1, 2, 2, 1}, t = 15, s = 3 ta có kết quả là suvivalGame(k,t,s) = false

Giải thích:

       Qua k[0] số Stamina còn lại là s=3–1=2

       Qua k[1] số Stamina còn lại là s=2–2=0

       vì hết thể lực P ngồi nghỉ tới khi có thể nhảy qua k[3] => s=0+3

       Con quái vật đến gần hơn vì P ngồi nghỉ => t=15–6=9

       Tại k[2] số Stamina còn lại là s=3–2=1

       Tại k[3] số Stamina còn lại là s=1-1=0

       Vì P đã nhảy qua được hết khe nứt nên trả về false

Đầu vào/Đầu ra:

  • [Thời gian chạy] 5s với C++, 3s với Java và C#, 4s với Python, Go và JavaScript.
  • [Đầu vào]

         Array of Integer: k

         0 <= k.length <= 10^4

         0 <= k[i] <= 10^4

         Float: t

         0 <= t <= 10^6

         Integer: s

         0 <= s <= 10^5

  • [Đầu ra] Boolean

         Nếu bị tóm trả về true, ngược lại thì false

Post Comment

Contact