Xếp lịch

Xem PDF



Tác giả:
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, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1400 (p) Thời gian: 1.0s Bộ nhớ: 1023M Input: bàn phím Output: màn hình

Một giáo viên cần giảng \(N\) vấn đề được đánh số từ 1 đến \(N\) (\(N \le 1000\)). Mỗi một vấn đề \(i\) có thời gian là \(A_i\) \((i=1…N)\). Mỗi vấn đề chỉ giảng không quá 1 buổi. Thời gian tối đa của một buổi là \(L\) (\(L \le 500\)). Vấn đề \(i\) phải được giảng trước vấn đề \(i+1\). Trong một buổi có thể bố trí giảng vài vấn đề nhưng nếu thừa lượng thời gian \(t\) thì buổi đó được đánh giá là lãng phí thời gian với mức \(d\) (\(d\) có giá trị như sau):

  • \(0\) nếu \(t=0\)
  • \(-c\) nếu \(1 \le t \le 10\)
  • \((t-10)^2\) nếu \(t>10\)

Trong đó \(c\) là hằng số nguyên dương cho trước.

Hãy xếp lịch dạy sao cho số buổi ít nhất và tổng các lãng phí thời gian là nhỏ nhất có thể được.

Input

  • Dòng đầu tiên là số \(N\) (\(N \le 1000\))
  • Dòng tiếp theo là \(L\)\(C\)
  • Dòng cuối cùng là \(N\) số thể hiện \(A_1, A_2, …, A_N\) (\(A_1 \le L\))

Output

  • Dòng đầu tiên là số buổi của lịch
  • Dòng tiếp theo là tổng thời gian lãng phí nhỏ nhất đạt được

Example

Test 1

Input
10
120 10
80 80 10 50 30 20 40 30 120 100
Output
6
2700

Nguồn: HSG 12 QNam 2015

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: