Nhằm hỗ trợ khả năng tự học cho sinh viên ngành CNTT, Khoa đã phát triển hệ thống hỗ trợ tự học và tự chấm các bài lập trình với tên gọi là IT-CODER (https://itcoder.hutech.edu.vn).
Để chuẩn bị cho kỳ thi Olympic quốc gia, CLB Olympic Tin học HUTECH đang đã sử dụng hệ thống ITCODER nhằm hỗ trợ chấm bài cho N đề thi khác nhau, giả sử rằng mỗi đề thi như vậy đều chỉ có đúng 2 bài tập. Mỗi bài tập đều sử dụng K test-case để hỗ trợ việc chấm điểm. Và mỗi test-case như vậy đều có độ khó được đo lường tương ứng là với 1 số nguyên dương từ 0-10^9.
Để có thể lựa chọn được chính xác các sinh viên có năng lực tốt, Ban chủ nhiệm CLB muốn tất cả N đề thi này có độ khó chênh lệch giữa 2 bài tập là ít nhất. Biết rằng độ khó của mỗi bài tập được tính bằng độ khó nhỏ nhất của tất cả các test-case đã thiết lập của bài tập đó.
Với số lượng 2 × N × K các độ khó sẽ sử dụng cho các đề thi, BCN CLB muốn phân bổ các đề thi sao cho sự chênh lệch độ khó giữa các bài tập trong đề thi không vượt quá ngưỡng d. Hãy giúp CLB phân bổ để tìm ra d nhỏ nhất có thể tạo được?
Hiển thị số nhỏ nhất d sao cho bạn có thể phân bổ các độ khó để đảm bảo sự chênh lệch giữa các đề thi không vượt quá d.
Dữ liệu vào Sao chép |
2 3 1 2 3 4 5 6 7 8 9 10 11 12 |
Dữ liệu ra Sao chép |
1 |
Dữ liệu vào Sao chép |
2 2 3 1 3 3 3 3 3 3 |
Dữ liệu ra Sao chép |
2 |
Ví dụ với N = 2 đề thi, mỗi bài tập có K = 3 test-case.
Như vậy có thể phân bổ tất cả các đề thi với d = 1.