BOI 2011 - Các cuộc họp

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2100 (p) Thời gian: 3.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Hội Cứu Thế Giới triệu tập \(N\) thành viên đến một đại hội khẩn cấp để thống nhất kế hoạch cứu thế giới. Trong mỗi cuộc họp tại đại hội, những người tham dự đi đến quyết định chung theo quy trình sau:

  1. Mỗi người có một đề xuất và dành \(P\) phút trình bày đề xuất đó cho những người còn lại.
  2. Sau khi tất cả đã trình bày, họ bỏ phiếu chọn đề xuất tốt nhất; việc bỏ phiếu mất \(V\) phút.

Chẳng hạn, nếu trình bày một đề xuất mất một phút (\(P=1\)) và bỏ phiếu cũng mất một phút (\(V=1\)), cuộc họp có 100 người sẽ đi đến quyết định sau 101 phút.

Để đẩy nhanh quá trình, các thành viên quyết định chia thành nhiều nhóm và làm việc đồng thời. Mỗi nhóm chọn đề xuất tốt nhất trong nhóm theo quy trình trên. Sau đó, đại diện các nhóm họp với nhau và chọn kế hoạch cuối cùng trong số những đề xuất đã thắng ở từng nhóm.

Ví dụ, nếu 100 người chia thành hai nhóm có lần lượt 40 và 60 người, với \(P=V=1\), quá trình có thể diễn ra như sau:

  • Nhóm lớn cần 61 phút để chọn đề xuất tốt nhất.
  • Nhóm nhỏ cần 41 phút, rồi phải đợi nhóm lớn hoàn thành.
  • Sau đó, hai đại diện gặp nhau, dành 2 phút trình bày và 1 phút bỏ phiếu.

Tổng thời gian là \(61+2+1=64\) phút.

Các nhóm còn có thể chia tiếp thành những nhóm nhỏ hơn; đôi khi chia thành nhiều hơn hai nhóm cũng có lợi. Đặc biệt, nhóm chỉ có một người quyết định ngay lập tức, vì người đó không cần trình bày đề xuất cho chính mình.

Cho thời gian trình bày \(P\) và thời gian bỏ phiếu \(V\), hãy tính thời gian ít nhất để \(N\) thành viên đi đến quyết định chung, khi họ tổ chức các nhóm và cuộc họp một cách tối ưu.

Dữ liệu vào

Dòng duy nhất chứa ba số nguyên \(N\), \(P\)\(V\): số thành viên, thời gian trình bày một đề xuất và thời gian bỏ phiếu. Thời gian được tính bằng phút.

Dữ liệu ra

In một số nguyên \(M\), là số phút ít nhất để đại hội đi đến quyết định chung.

Ràng buộc

  • \(1 \le N \le 10^{15}\).
  • \(1 \le P,V \le 1\,000\).

Phân nhóm

  • Trong các bộ dữ liệu có tổng cộng 40 điểm, \(1 \le N \le 5\,000\).
  • Trong các bộ dữ liệu có tổng cộng 70 điểm, \(1 \le N \le 50\,000\); số điểm này bao gồm 40 điểm ở trên.
  • 30 điểm còn lại không có ràng buộc bổ sung.

Ví dụ

Ví dụ 1

Input
9 1 1
Output
8
Giải thích

Chia các thành viên thành 3 nhóm, mỗi nhóm 3 người. Mỗi nhóm cần 4 phút, rồi 3 đại diện cần thêm 4 phút cho cuộc họp cuối cùng.

Ví dụ 2

Input
6 1 2
Output
8

Ví dụ 3

Input
6 2 1
Output
12

Tệp

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: