C++程式,用於在延遲計時後查詢打字遊戲的獲勝者


假設我們有五個數字 s、v1、v2、t1 和 t2。阿馬爾和比馬爾正在玩一個打字遊戲,他們在網上玩這個遊戲。在這個遊戲中,他們將輸入一個長度為 s 的字串。阿馬爾每打一個字元需要 v1 毫秒,比馬爾每打一個字元需要 v2 毫秒。阿馬爾的網路延遲為 t1 毫秒,比馬爾的網路延遲為 t2 毫秒。

如果連線延遲為 t 毫秒,則參與者的比賽流程如下:

  • 遊戲開始後正好 t 毫秒,參與者收到要輸入的文字。

  • 緊隨其後,他開始輸入。

  • 他完成所有文字輸入後正好 t 毫秒,網站收到相關資訊。

誰先完成,誰就是贏家。如果兩個參與者的時間相同,則為平局。我們必須找到獲勝者。

因此,如果輸入類似於 s = 5;v1 = 1;v2 = 2;t1 = 1;t2 = 2,則輸出將為阿馬爾,因為阿馬爾成功的資訊在 7 毫秒內到達,而比馬爾在 14 毫秒內到達。因此,阿馬爾獲勝。

步驟

為了解決這個問題,我們將遵循以下步驟:

p := (s * v1) + (2 * t1)
q := (s * v2) + (2 * t2)
if p is same as q, then:
   return "Draw"
otherwise when p < q, then:
   return "Amal"
Otherwise
   return "Bimal"

示例

讓我們看看以下實現,以便更好地理解:

#include <bits/stdc++.h>
using namespace std;

string solve(int s, int v1, int v2, int t1, int t2) {
   int p = (s * v1) + (2 * t1);
   int q = (s * v2) + (2 * t2);
   if (p == q)
      return "Draw";
   else if (p < q)
      return "Amal";
else
   return "Bimal";
}
int main() {
   int s = 5;
   int v1 = 1;
   int v2 = 2;
   int t1 = 1;
   int t2 = 2;
   cout << solve(s, v1, v2, t1, t2) << endl;
}

輸入

5, 1, 2, 1, 2

輸出

Amal

更新於: 2022年3月3日

267 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.