Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

지연 시간 후 타이핑 게임의 승자를 찾는 C++ 프로그램

<시간/>

다섯 개의 숫자 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