Gửi bài giải

Điểm: 20
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Kiểu bài tập

Cho số nguyên \(N\) và một dãy số nguyên \(a_1, a_2, ..., a_N\). Nhiệm vụ của bạn là phải cắt dãy số trên thành một số dãy số (giữ nguyên thứ tự) thỏa mãn:

  • Tổng của mỗi dãy số không lớn hơn số nguyên \(M\).
  • Tổng của các số lớn nhất trong các dãy trên là nhỏ nhất.

Dữ liệu vào

  • Dòng đầu gồm \(2\) số nguyên \(N\) và \(M\).
  • Dòng thứ hai gồm \(N\) số nguyên của dãy \(a_1, a_2, ..., a_N\).

Dữ liệu ra

  • Gồm một số duy nhất là tổng của các số lớn nhất trong các dãy số trên. Nếu không có cách cắt nào thỏa mãn hai điều kiện trên, in ra \(-1\).

Giới hạn:

  • \(1 \le N \le 100000\).
  • \(0 \le a_i \le 10^6\).
  • \(M \lt 2^{63}\).

Input 1

8 17
2 2 2 8 1 8 2 1

Output 1

12

Giải thích

Cắt thành 3 dãy 222, 818, 21

Nhận xét

Không có ý kiến tại thời điểm này.