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 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告