Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
PTIT124C - Cân đĩa |
Cho một cân đĩa ban đầu chỉ gồm một sợi dây. Mỗi sợi dây lại có thể phân nhánh thành 2 sợi dây con, một sợi dây bị phân nhánh sẽ được kí hiệu là [ ] (ở trong dấu [ ] là 2 nhánh của sợi dây đó, nó có thể chứa các dấu [ ] khác nếu sợi dây bị phân nhánh nhiều lần) . Ở các sợi dây mà không bị phân nhánh nữa, người ta sẽ treo vào đó các quả cân có trọng lượng là một số nguyên dương.
Các bạn có thể hình dung mô hình cân này sẽ tạo thành một cây nhị phân, ví dụ như trong hình. Biết rằng: cây nhị phân này có độ sâu không quá 25. Nhiệm vụ của bạn là treo các quả cân sao cho cân cân bằng và tổng trọng lượng các quả cân là bé nhất có thể.
Lưu ý: Cân sẽ cân bằng nếu như với mỗi sợi dây bị phân nhánh thì tổng trọng lượng sợi dây bên trái bằng tổng trọng lượng sợi dây bên phải. Ban đầu có một sợi dây nên ít nhất có một quả cân trọng lượng
Input
- Dòng đầu tiên chứa 1 số nguyên N (1<=N<=1000) là số bộ test.
- Sau đó là N bộ test, mỗi bộ test trên một dòng chứa một xâu các dấu [ và ] kí hiệu cho cân đĩa. 0 <= độ dài xâu <= 150.
Output
- Với mỗi bộ test, in ra trên 1 dòng chứa số tự tự bộ test, dấu cách, và kết quả bài toán.
Example
Input:3
Output:
[]
[[][[]]]1 2
2 1
3 8Lưu ý: Test số 2 là 1 dòng trống
Được gửi lên bởi: | adm |
Ngày: | 2012-03-10 |
Thời gian chạy: | 0.100s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | ASM32-GCC ASM32 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA |