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"
理解を助けるために、以下の実装を見てみましょう -
#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 サイトの他の関連記事を参照してください。