ホームページ  >  記事  >  バックエンド開発  >  遅延時間の後にタイピング ゲームの勝者を見つける C++ プログラム

遅延時間の後にタイピング ゲームの勝者を見つける C++ プログラム

WBOY
WBOY転載
2023-08-27 16:29:06715ブラウズ

遅延時間の後にタイピング ゲームの勝者を見つける C++ プログラム

5 つの数値 s、v1、v2、t1、t2 があるとします。アマルとビマルはオンラインでタイピング ゲームをプレイしています。このゲームでは、長さ s の文字列を入力します。 Amal は v1 ミリ秒で文字を入力し、Bimal は v2 ミリ秒で文字を入力します。 Amal のネットワーク遅延は t1 ミリ秒、Bimal のネットワーク遅延は t2 ミリ秒です。

接続遅延が t ミリ秒の場合、ゲームのプロセスは次のようになります:

  • ゲーム開始から t ミリ秒後、参加者は入力するテキストを受け取ります。 。

  • それから彼はタイプを始めました。

  • 彼がすべてのテキストを入力し終えてから T ミリ秒後、Web サイトは関連情報を受信しました。

最初にゴールした人が勝者です。両方の参加者が同じタイムを持っている場合、それは引き分けです。勝者を見つけなければなりません。

入力が s = 5; v1 = 1; v2 = 2; t1 = 1; t2 = 2 の場合、Amal の成功メッセージは 7 ミリ秒以内に到着するため、Bimal の成功メッセージは Amal になります。 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"

Example

理解を助けるために、以下の実装を見てみましょう -

#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

以上が遅延時間の後にタイピング ゲームの勝者を見つける C++ プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。