PTIT038 - Máy thử lòng tin

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Mèo béo ngốc ngếch Doraemon cho bạn 1 chiếc máy thử lòng tin. Chiếc máy có 2 cửa.

Nếu bạn bỏ vào cửa 1 xu, đối phương không bỏ xu, đối phương sẽ lãi 2 xu ở cửa bên kia và ngược lại, nếu đối phương bỏ vào 1 xu, bạn không bỏ xu vào, bạn cũng sẽ nhận được thêm 2 xu. Vấn đề ở chỗ bạn và đối thủ có quyền bỏ xu vào (hợp tác - mỗi người lãi 1 xu), hoặc không (gian lận - không ai có thêm xu nào).

Bây giờ bạn sẽ đấu lần lượt với 4 đối thủ với 4 "chiến thuật" khác nhau:

  1. Mai ngoc: cuộc sống toàn là màu hồng. Vì có tràn đầy niềm tin vào cuộc sống và hơi ngốc nghếch nên sẽ luôn luôn "hợp tác".
  2. VanHocvp: thà ta phụ người chứ không để người phụ ta! Không tin bất kì ai nên không "hợp tác" dưới mọi hình thức.
  3. TuDeepTry: thanh niên thù dai! Ban đầu sẽ "hợp tác", chỉ cần bạn "gian lận" 1 lần thì sẽ không bao giờ "hợp tác" nữa.
  4. TaiLe: Lượt đầu sẽ "hợp tác". Nếu bạn "hợp tác" thì sẽ "hợp tác" lại ở lượt tiếp theo, nhưng nếu bạn lừa TaiLe 2 lần liên tiếp thì gã sẽ "gian lận" để trả đũa ở lượt tiếp theo.

Với mỗi đối thủ, bạn sẽ đấu số lượt lần lượt là: ~x1, x2, x3, x4~.

Ban đầu bạn có 1 xu, hãy tính xem sau khi thi đấu bạn sẽ giành được tối đa bao nhiêuxu.

Input

1 dòng duy nhất chứa 4 số: ~x1, x2, x3, x4~ là số lượt đấu với đối thủ 1, 2, 3, 4.(~0 \le x1, x2, x3, x4 \le 100~)

Output

1 dòng duy nhất là số xu tối đa thắng được khi chơi.

Sample

Input #1
10 10 10 10
Output #1
47
Input #2
5 6 7 8
Output #2
31

Problem source: CLB Lập Trình PTIT


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    thangok  đã bình luận lúc 20, Tháng 4, 2024, 8:07

    Với đối thủ Mai Ngoc : vì nó luôn luôn hợp tác nên chúng ta sẽ gian lận trong tất cả lượt chơi, như vậy sau mỗi lược chúng ta thu được 2 xu hoàn toàn free, số xu thu được là 2*số lượt chơi.

    VanHocvp : thằng này chúng ta coi như nó không có, bởi vì nó không bao giờ hợp tác nên chúng ta sẽ không thu được gì từ nó :)).

    Tudeeptrai: thanh niên này chỉ cần chúng ta gian lận "1 lần" thì nó sẽ không bao giờ hợp tác nữa, như vậy thì chúng ta sẽ hợp tác hết và sẽ gian lận ở lượt chơi cuối cùng, số xu thu được : số lượt chơi+1.

    TaiLe: không biết giải thích sao nữa nhưng số xu thu được là số lượt chơi+(số lượt chơi/2)


  • -1
    hoangvanthong  đã bình luận lúc 22, Tháng 2, 2024, 13:39

    Để giải bài toán này, chúng ta sẽ xem xét cách đối phó với từng đối thủ một cách chi tiết:

    1. Đối thủ Mai ngoc:
    2. Do Mai ngoc luôn hợp tác, nên bạn chỉ cần hợp tác để cả hai đều nhận được 1 xu sau mỗi lượt đấu.
    3. Với 1000 lượt đấu, bạn sẽ nhận được 1000 xu.

    4. Đối thủ VanHocvp:

    5. Với VanHocvp không bao giờ hợp tác, nên bạn cần gian lận để nhận được 2 xu sau mỗi lượt đấu.
    6. Với 1000 lượt đấu, bạn sẽ nhận được 2000 xu.

    7. Đối thủ TuDeepTry:

    8. TuDeepTry sẽ hợp tác ban đầu, nhưng nếu bạn gian lận một lần, từ đó về sau sẽ không hợp tác nữa.
    9. Vì vậy, bạn cần hợp tác ban đầu, sau đó gian lận một lần. Từ đó về sau, cả hai sẽ không hợp tác nữa.
    10. Với 1000 lượt đấu, bạn sẽ nhận được 1000 xu.

    11. Đối thủ TaiLe:

    12. TaiLe sẽ hợp tác ban đầu và hợp tác lại ở lượt tiếp theo nếu bạn hợp tác.
    13. Nếu bạn lừa TaiLe 2 lần liên tiếp, gã sẽ gian lận để trả đũa ở lượt tiếp theo.
    14. Vì vậy, bạn cần hợp tác hai lần, sau đó gian lận hai lần, và tiếp tục lặp lại.
    15. Với 1000 lượt đấu, bạn sẽ nhận được 1500 xu.

    Tổng kết, sau khi đấu với 4 đối thủ, bạn sẽ giành được tối đa 6500 xu. Đó chính là số xu tối đa bạn có thể giành được theo chiến thuật đấu với từng đối thủ như đã mô tả.