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
Gửi bài giải
Kotlin
PyPy
Đ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
Pascal
Python
Scratch