Chia dãy bằng nhau

Xem dạng PDF

Đề bài

Cho một dãy số nguyên. Hãy chia dãy này thành nhiều đoạn nhất có thể sao cho tổng các phần tử trong mỗi đoạn bằng nhau.


Dữ liệu vào
  • Dòng đầu tiên chứa số nguyên ~ n ~ ~(n \leq 100)~: số lượng phần tử trong dãy.
  • Dòng thứ hai chứa ~ n ~ số nguyên ~ a_1, a_2, \dots, a_n ~ với ~ |a_i| \leq 10^9 ~.

Dữ liệu ra
  • Dòng đầu tiên in số nguyên ~ K ~: số lượng đoạn chia được.
  • Dòng thứ hai in ~ K ~ số nguyên, mỗi số là chỉ số cuối cùng của ~ K ~ đoạn theo thứ tự từ trái sang phải.

Lưu ý: Nếu có nhiều phương án, chỉ cần in ra một phương án bất kỳ.


Ví dụ
Dữ liệu vào:
6
5 2 3 2 2 1
Dữ liệu ra:
3
1 3 6

Giải thích:

Dãy ban đầu là ~ [5, 2, 3, 2, 2, 1] ~. Có thể chia thành các đoạn như sau:

  • Đoạn 1: ~ [5] ~ → tổng = 5 (chỉ số cuối là 1)
  • Đoạn 2: ~ [2, 3] ~ → tổng = 5 (chỉ số cuối là 3)
  • Đoạn 3: ~ [2, 2, 1] ~ → tổng = 5 (chỉ số cuối là 6)

Kết quả là ~ K = 3 ~ và chỉ số cuối của các đoạn là ~ 1, 3, 6 ~.



Bình luận

Hãy đọc nội quy trước khi bình luận.

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

Gửi bài giải
Điểm: 10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout
Dạng bài
Basic
Ngôn ngữ cho phép
C
C++
Java
Kotlin
Pascal
PyPy
Python
Scratch