Bỏ thanh cân bằng đan dấu
Đề bài
Mô tả
Có thanh kim loại xếp trên một đường thẳng, đánh số từ đến . Mỗi thanh mang điện tích bằng hoặc , cho bởi một xâu độ dài : nếu là ký tự "+" thì điện tích thanh thứ là , nếu là "-" thì điện tích là .
Với một dãy thanh (theo thứ tự từ trái sang phải, đánh lại chỉ số từ ), ta gọi tổng đan dấu của nó là
Nếu (không còn thanh nào) thì tổng đan dấu quy ước bằng .
Có truy vấn. Truy vấn thứ gồm hai số : chỉ xét các thanh có chỉ số từ đến . Bạn cần bỏ đi số thanh ít nhất sao cho các thanh còn lại (giữ nguyên thứ tự và đánh lại chỉ số từ ) có tổng đan dấu bằng . Hãy cho biết số thanh cần bỏ, đồng thời chỉ ra các thanh đó.
Nếu tổng đan dấu của đoạn đã bằng thì không cần bỏ thanh nào.
Dữ liệu vào
- Dòng đầu chứa số nguyên (): số bộ dữ liệu.
- Với mỗi bộ dữ liệu:
- Dòng đầu chứa hai số nguyên và ().
- Dòng thứ hai chứa xâu độ dài gồm các ký tự "+" và "-".
- dòng tiếp theo, mỗi dòng chứa hai số nguyên ().
Tổng của trên tất cả các bộ dữ liệu không vượt quá , và tổng của trên tất cả các bộ dữ liệu không vượt quá .
Dữ liệu ra
Với mỗi truy vấn, in ra:
- Dòng đầu: một số nguyên , số thanh ít nhất cần bỏ.
- Dòng thứ hai: chỉ số (theo cách đánh số gốc từ đến ) của các thanh cần bỏ, phân tách bởi dấu cách. Nếu thì không cần in gì thêm cho truy vấn này.
Nếu có nhiều đáp án đúng, in ra đáp án bất kỳ.
Ràng buộc
- Tổng không quá ; tổng không quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 14 1 +--++---++-++- 1 14 14 3 +--++---+++--- 1 14 6 12 3 10 4 10 +-+- 1 1 1 2 1 3 1 4 2 2 2 3 2 4 3 3 3 4 4 4 |
2 1 2 2 1 9 1 9 0 1 1 2 1 2 1 2 2 1 3 1 2 2 2 3 1 3 1 3 2 3 4 1 4 |
Với truy vấn đầu của bộ , bỏ hai thanh và thì các thanh còn lại có tổng đan dấu bằng . Truy vấn thứ ba đã cân bằng nên . Có thể có nhiều cách bỏ khác cùng số lượng. |
| 1 4 3 ++-- 1 4 2 3 1 1 |
0 2 2 3 1 1 |
Đoạn của xâu ++-- có tổng đan dấu nên . Đoạn gồm hai thanh "+-", tổng và độ dài chẵn nên phải bỏ cả hai thanh (). Đoạn chỉ có một thanh, tổng luôn khác nên phải bỏ nó (). |
Bình luận