trang chủ / bài tập / prepcont

Chuẩn bị cho kỳ thi

Đề bài

Mô tả

m lỗi (bug) cần được sửa và n sinh viên có thể tham gia sửa lỗi. Lỗi thứ j có độ phức tạp aj, còn sinh viên thứ i có trình độ bi. Sinh viên i chỉ có thể sửa lỗi j nếu biaj, và mỗi lỗi được sửa xong trong đúng một ngày.

Trong một ngày, mỗi sinh viên chỉ sửa được nhiều nhất một lỗi. Các lỗi độc lập với nhau nên nhiều sinh viên có thể làm việc song song. Sinh viên thứ i đòi hỏi được cộng ci điểm để tham gia (không phụ thuộc vào việc anh ta sửa bao nhiêu lỗi); nếu một sinh viên không được chọn thì không tốn điểm nào.

Cần sửa tất cả các lỗi sao cho tổng số điểm cộng cho các sinh viên được chọn không vượt quá s. Trong điều kiện đó, hãy tìm cách phân công để số ngày hoàn thành là nhỏ nhất (số ngày bằng số lỗi nhiều nhất mà một sinh viên phải sửa).

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, m, s.
  • Dòng thứ hai chứa m số nguyên a1,a2,,am — độ phức tạp của các lỗi.
  • Dòng thứ ba chứa n số nguyên b1,b2,,bn — trình độ của các sinh viên.
  • Dòng thứ tư chứa n số nguyên c1,c2,,cn — số điểm mỗi sinh viên đòi hỏi.

Dữ liệu ra

Nếu không thể sửa hết mọi lỗi (với ràng buộc tổng điểm s), in ra NO.

Ngược lại, in YES trên dòng đầu; dòng thứ hai in m số nguyên, số thứ j là chỉ số của sinh viên sửa lỗi thứ j trong một phương án tối ưu (số ngày nhỏ nhất, tổng điểm không vượt quá s). Nếu có nhiều phương án tối ưu, in ra một phương án bất kỳ.

Ràng buộc

  • 1n,m105
  • 0s109
  • 1ai109
  • 1bi109
  • 0ci109

Ví dụ

Input Output Giải thích
3 4 5
1 3 1 2
2 1 3
5 3 6
NO Sinh viên duy nhất có thể sửa lỗi độ phức tạp 3 là sinh viên 3 (trình độ 3, đòi 6 điểm). Muốn sửa hết trong ít ngày cần thêm sinh viên, nhưng mọi phương án hợp lệ đều vượt quá s=5 điểm.
3 4 9
1 3 1 2
2 1 3
4 3 6
YES
2 3 2 3
Sinh viên 3 (trình độ 3) sửa lỗi 2 và 4 (độ phức tạp 3 và 2); sinh viên 2 (trình độ 1) sửa lỗi 1 và 3 (độ phức tạp 1 và 1). Hai người làm song song nên chỉ mất 2 ngày. Tổng điểm 3+6=99.
3 4 10
2 3 1 2
2 1 3
4 3 6
YES
1 3 1 3
Sinh viên 1 (trình độ 2) sửa lỗi 1 và 3; sinh viên 3 (trình độ 3) sửa lỗi 2 và 4. Mất 2 ngày, tổng điểm 4+6=1010.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 GO groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0