Hotline: 024.62511017

024.62511081

  Trang chủ   Sản phẩm   Phần mềm Dành cho nhà trường   Phần mềm Hỗ trợ học tập   Kho phần mềm   Liên hệ   Đăng nhập | Đăng ký

Tìm kiếm

School@net
 
Xem bài viết theo các chủ đề hiện có
  • Hoạt động của công ty (726 bài viết)
  • Hỗ trợ khách hàng (498 bài viết)
  • Thông tin tuyển dụng (57 bài viết)
  • Thông tin khuyến mại (80 bài viết)
  • Sản phẩm mới (216 bài viết)
  • Dành cho Giáo viên (549 bài viết)
  • Lập trình Scratch (3 bài viết)
  • Mô hình & Giải pháp (156 bài viết)
  • IQB và mô hình Ngân hàng đề kiểm tra (127 bài viết)
  • TKB và bài toán xếp Thời khóa biểu (242 bài viết)
  • Học tiếng Việt (183 bài viết)
  • Download - Archive- Update (289 bài viết)
  • Các Website hữu ích (70 bài viết)
  • Cùng học (92 bài viết)
  • Learning Math: Tin học hỗ trợ học Toán trong nhà trường (78 bài viết)
  • School@net 15 năm (154 bài viết)
  • Mỗi ngày một phần mềm (7 bài viết)
  • Dành cho cha mẹ học sinh (124 bài viết)
  • Khám phá phần mềm (122 bài viết)
  • GeoMath: Giải pháp hỗ trợ học dạy môn Toán trong trường phổ thông (36 bài viết)
  • Phần mềm cho em (13 bài viết)
  • ĐỐ VUI - THƯ GIÃN (363 bài viết)
  • Các vấn đề giáo dục (1210 bài viết)
  • Bài học trực tuyến (1037 bài viết)
  • Hoàng Sa - Trường Sa (17 bài viết)
  • Vui học đường (275 bài viết)
  • Tin học và Toán học (220 bài viết)
  • Truyện cổ tích - Truyện thiếu nhi (180 bài viết)
  • Việt Nam - 4000 năm lịch sử (97 bài viết)
  • Xem toàn bộ bài viết (8223 bài viết)
  •  
    Đăng nhập/Đăng ký
    Bí danh
    Mật khẩu
    Mã kiểm traMã kiểm tra
    Lặp lại mã kiểm tra
    Ghi nhớ
     
    Quên mật khẩu | Đăng ký mới
     
    Thành viên có mặt
    Khách: 18
    Thành viên: 0
    Tổng cộng: 18
     
    Số người truy cập
    Hiện đã có 89723463 lượt người đến thăm trang Web của chúng tôi.

    Đề thi IOI2009 - BÀI 2: THUÊ NHÂN VIÊN (HIRING)

    Ngày gửi bài: 17/09/2009
    Số lượt đọc: 3460

    Bạn phải thuê nhân công để thực hiện một dự án xây dựng. Có N người ứng viên xin việc, được đánh số từ 1 đến N. Mỗi ứng viên k đòi hỏi, nếu chọn anh ta thì phải trả lương ít nhất là Sk đô la. Ngoài ra, người ta còn biết rằng ứng viên k có trình độ tay nghề là Qk. Theo các quy định của ngành xây dựng, các công nhân phải được trả lương tỉ lệ thuận với trình độ tay nghề của họ. Ví dụ, nếu bạn thuê hai công nhân A và B và QA=3 * QB, thì bạn phải trả lương người A gấp 3 lần trả cho người B. Bạn được phép trả cho công nhân của mình một lượng tiền không biểu diễn bằng số nguyên. Thậm chí, tiền lương có thể là một số thập phân vô hạn, chẳng hạn như một phần ba (1/3) hoặc là một phần sau (1/6) đô la.

    Bạn có W đô la trong tay và muốn thuê được càng nhiều công nhân càng tốt. Bạn tự quyết định sẽ thuê những ai và trả lương cho họ như thế nào, nhưng bạn phải đảm bảo mức lương tối thiểu trả cho công nhân mà bạn thuê, và bạn cũng phải tuân thủ các quy định trong ngành xây dựng. Bạn còn phải thu xếp chi trả trong phạm vi ngân sách W đô la của mình.

    Theo bản chất của dự án, trình độ tay nghề của công nhân hoàn toàn không ảnh hưởng, vì vậy bạn chỉ quan tâm đến việc cực đại hóa số công nhân bạn thuê, bỏ qua việc xét đến trình độ của họ. Tuy nhiên, nếu có nhiều hơn một cách thuê để đạt được số lượng này, thì bạn phải chọn cách sao cho tổng số tiền phải trả cho công nhân của bạn là ít nhất có thể. Trong trường hợp có nhiều hơn một cách như vậy, bạn có thể chọn bất kì cách nào.

    BÀI TOÁN

    Biết các yêu cầu về lương cũng như trình độ tay nghề của các ứng viên và số tiền bạn có, hãy viết chương trình xác định những ứng viên bạn cần thuê. Bạn phải thuê càng nhiều công nhân càng tốt và bạn phải thực hiện việc này sao cho bạn tốn càng ít tiền càng tốt mà không vi phạm các quy định của ngành xây dựng mô tả ở trên.

    RÀNG BUỘC

    1 ≤ N ≤ 500000 Số lượng ứng viên.

    1 ≤ Sk ≤ 20000 Yêu cầu về lương tối thiểu của ứng viên k.

    1 ≤ Qk ≤ 20000 Trình độ tay nghề của ứng viên k.

    1 ≤ W ≤ 10000000000 Tổng số tiền bạn có.

    Chương trình của bạn phải đọc từ standard input dữ liệu sau:

    Dòng đầu chứa các số nguyên N và W, cách nhau bởi một dấu cách.

    N dòng tiếp theo mô tả các ứng viên, mỗi ứng viên trên một dòng. Dòng thứ k trong các dòng này mô tả ứng viên thứ k và chứa các số nguyên Sk và Qk, cách nhau bởi một dấu cách.

    OUTPUT

    Chương trình của bạn phải ghi ra standard output dữ liệu sau:

    Dòng đầu tiên chứa một số nguyên H, là số công nhân mà bạn thuê.

    H dòng tiếp theo liệt kê số hiệu của các ứng viên mà bạn chọn thuê (mỗi người trong họ ứng với một số nguyên khác nhau trong khoảng từ 1 đến N), mỗi người trên một dòng, theo thứ tự bất kì.

    CÁCH CHẤM ĐIỂM

    Với mọi test, bạn sẽ nhận được trọn điểm của test nếu chọn lựa của bạn cho phép bạn thỏa mãn mọi mục đích của mình đồng thời tuân thủ mọi ràng buộc. Nếu bạn sinh ra một output file với dòng đầu tiên chính xác (tức là cho đúng giá trị H), nhưng mô ta cách thuê không đúng, bạn sẽ nhận được 50% số điểm của test đó. Điều này vẫn đúng ngay cả khi output file có format không đúng, miễn sao dòng đầu tiên là chính xác.

    Có một nhóm các test với tổng số điểm là 50, N sẽ không vượt quá 5000.

    VÍ DỤ

    Chỉ có duy nhất một cách chọn để bọn có thể thuê 2 công nhân và vẫn thỏa mãn tất cả các ràng buộc là chọn công nhân 2 và 3. Bạn phải trả cho họ tương ứng là 80 và 8 đô la và như vậy vẫn nằm trong ngân sách 100 đô la của bạn.

    Ở đây, bạn có thể thuê tất cả 3 công nhận. Bạn trả 1 đô la cho công nhân 1 và 1.50 đô la cho mỗi công nhân 2 và 3, và bạn đã thuê được tất cả các công nhân với ngân sách 4 đô la mà bạn có.

    Ở đây, bạn không thể thuê tất cả 3 công nhân, vì giá thuê sẽ lên đến 60 đô la, nhưng bạn có thể thuê được 2 người bất kì trong họ. Bạn chọn thuê công nhân số 2 và số 3 vì tổng số tiền thuê sẽ là thấp nhất, nếu so sánh với các cách thuê 2 công nhân khác. Bạn có thể trả 10 đô la cho công nhân số 2 và 15 đô la cho công nhân số 3. Chi phí tổng cộng là 25 đô la. Nếu bạn thuê công nhân số 1 và số 2 thì số tiền phải trả ít nhất tương ứng là 10 và 20 đô la. Nếu bạn thuê công nhân số 1 và số 3 số tiền phải trả ít nhất tương ứng là 10 và 30 đô la.

    School@net



     Bản để in  Lưu dạng file  Gửi tin qua email


    Những bài viết khác:



    Lên đầu trang

     
    CÔNG TY CÔNG NGHỆ TIN HỌC NHÀ TRƯỜNG
     
    Phòng 804 - Nhà 17T1 - Khu Trung Hoà Nhân Chính - Quận Cầu Giấy - Hà Nội
    Phone: 024.62511017 - 024.62511081
    Email: kinhdoanh@schoolnet.vn


    Bản quyền thông tin trên trang điện tử này thuộc về công ty School@net
    Ghi rõ nguồn www.vnschool.net khi bạn phát hành lại thông tin từ website này
    Site xây dựng trên cơ sở hệ thống NukeViet - phát triển từ PHP-Nuke, lưu hành theo giấy phép của GNU/GPL.