Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ tìm người thắng trò chơi gõ phím sau độ trễ


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

Nếu độ trễ kết nối là t mili giây, cuộc thi diễn ra cho một người tham gia như sau:

    Đúng t mili giây sau khi trò chơi bắt đầu, người tham gia nhận được văn bản cần nhập.

  • Ngay sau đó, họ bắt đầu gõ.

  • Đúng t mili giây sau khi họ kết thúc gõ toàn bộ văn bản, trang web nhận thông tin về nó.

Ai hoàn thành nhanh hơn sẽ là người thắng. Nếu thời gian của cả hai người tham gia giống nhau, thì là hòa. Chúng ta phải tìm người thắng.

Ví dụ, 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 thành công của Amal đến sau 7 mili giây, của Bimal sau 14 mili giây. Vì vậy, Amal thắng.

Các bước

Để giải quyết bài toán này, chúng ta sẽ làm theo các bước sau:

p := (s * v1) + (2 * t1) q := (s * v2) + (2 * t2) if p giống q, thì:    return "Draw" ngược lại khi p < q, thì:    return "Amal" Ngược lại    return "Bimal"

Ví dụ

Xem 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