다섯 개의 숫자 s, v1, v2, t1 및 t2가 있다고 가정합니다. Amal과 Bimal은 타자 게임을 하고 있고 온라인 게임을 하고 있습니다. 이 게임에서는 길이가 s인 문자열을 입력합니다. Amal은 v1밀리초에 한 문자를 입력하고 Bimal은 v2밀리초에 한 문자를 입력합니다. Amal의 네트워크 지연은 t1밀리초이고 Bimal의 네트워크 지연은 t2밀리초입니다.
연결 지연이 t 밀리초인 경우 경쟁은 다음과 같이 참가자에 대해 통과합니다. -
-
게임 시작 후 정확히 t밀리초 후에 참가자는 입력할 텍스트를 받습니다.
-
그 직후 그는 타이핑을 시작합니다.
-
그가 모든 텍스트를 입력한 후 정확히 t밀리초 후에 사이트는 이에 대한 정보를 받습니다.
더 빨리 완료하는 사람이 승자가 됩니다. 두 참가자의 시간이 같으면 무승부입니다. 승자를 찾아야 합니다.
따라서 입력이 s =5와 같으면; v1 =1; v2 =2; t1 =1; t2 =2이면 출력은 Amal이 됩니다. Amal의 성공에 대한 정보는 7밀리초 내에, Bimal의 경우 14밀리초 안에 들어오기 때문입니다. 따라서 Amal이 이깁니다.
단계
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
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