Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để tìm người chiến thắng trong trò chơi đánh máy sau thời gian trì hoãn

Giả sử chúng ta có năm số s, v1, v2, t1 và t2. Amal và Bimal đang chơi trò chơi đánh máy, họ đang chơi trò chơi trực tuyến của mình. Trong trò chơi này, họ sẽ gõ một chuỗi có độ dài là s. Amal nhập một ký tự trong v1 mili giây và Bimal nhập một ký tự trong v2 mili giây. Độ trễ mạng của Amal là t1 mili giây và độ trễ mạng của Bimal là t2 mili giây.

Nếu độ trễ kết nối là t mili giây, cuộc thi sẽ chuyển sang người tham gia như sau -

  • Chính xác sau t mili giây sau khi trò chơi bắt đầu, người tham gia sẽ nhận được văn bản cần nhập.

  • Ngay sau đó anh ấy bắt đầu nhập nó.

  • Đúng t mili giây sau khi anh ta kết thúc nhập tất cả văn bản, trang web sẽ nhận được thông tin về nó.

Ai hoàn thành nhanh hơn, sẽ là người chiến thắng. Nếu thời gian cho cả hai người tham gia là như nhau, thì đó là một trận hòa. Chúng ta phải tìm ra người chiến thắng.

Vì vậy, nếu đầu vào là s =​​5; v1 =1; v2 =2; t1 =1; t2 =2, thì đầu ra sẽ là Amal, vì thông tin về sự thành công của Amal tính bằng 7 mili giây, của Bimal tính bằng 14 mili giây. Vì vậy, Amal thắng.

Các bước

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

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"

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#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;
}

Đầu vào

5, 1, 2, 1, 2

Đầu ra

Amal