Bài 1. Bẻ thanh sô cô la
Hạn chế thời gian: 2 giây. Hạn chế bộ nhớ: 256MB
Bạn có một thanh sô cô la hình chữ nhật gồm m×n ô vuông đơn vị. Bạn muốn ăn đúng k ô vuông, nên bạn có thể cần phải bẻ thanh sô cô la. Trong một lần bẻ, bạn cần bẻ phần sô cô la hình chữ nhật thành hai miếng hình chữ nhật. Bạn chỉ có thể bẻ theo các dòng nằm giữa các hình vuông: theo một chiều ngang hoặc theo một chiều dọc. Tiền chi phí cho một lần bẻ là bình phương của chiều dài đường bẻ. Ví dụ, nếu bạn có một thanh sô cô la bao gồm 2 × 3 ô vuông, bạn có thể bẻ nó theo chiều ngang và nhận được hai miếng 1 × 3 (chi phí như vậy là 32 = 9), hoặc bạn có thể bẻ nó theo chiều dọc theo hai cách và nhận được hai phần: 2 × 1 và 2 × 2 (chi phí như vậy là 22 = 4). Đối với các số n, m và k nhất định tìm tổng số tiền chi phí tối thiểu khi bẻ. Bạn có thể ăn đúng k ô vuông sô cô la nếu sau mọi lần bẻ có được một tập hợp các miếng sô cô la hình chữ nhật mà tổng của chúng bằng k ô vuông. Phần còn lại là m×n – k ô vuông không nhất thiết phải tạo thành hình chữ nhật.
Input. Tên tệp là chocola.inp
Dòng đầu tiên chứa số nguyên t (1 ≤ t ≤ 40910) — là số bộ giá trị n, m và k cần xử lý. Mỗi dòng trong t dòng tiếp theo là ba số nguyên n, m và k (1 ≤ n, m ≤ 30, 1 ≤ k ≤ min(n×m, 50)) — tương ứng là kích thước thanh sô cô la và số ô vuông mà bạn muốn ăn.
Output. Tên tệp là chocola.out
Với mỗi bộ n, m và k hãy in ra giá tiền chi phí nhỏ nhất cần để bẻ thanh sô cô la tạo ra được đúng k ô vuông để ăn.
Ví dụ
input
4
2 2 1
2 2 3
2 2 2
2 2 4
output
5
5
4
0
Giải thích
Trong truy vấn thứ nhất của ví dụ cần thực hiện 2 lần bẻ:
- Chia thanh 2 × 2 thành 2 mẩu 2 × 1 (giá là 22 = 4),
- Chia mẩu 2 × 1 thành 2 mẩu con 1 × 1 (giá là 12 = 1).
Trong truy vấn thứ hai, muốn ăn 3 ô vuông cần dùng chiến thuật bẻ như truy vấn trên.
Bài 2.Ước chung dễ thương
Hạn chế thời gian: 2 giây. Hạn chế bộ nhớ: 256MB
Trong giờ Toán, Va-xa rất say sưa đếm những con quạ bên ngoài cửa sổ. Hôm nay là một ngày không bình thường vì có rất nhiều quạ, ngoài ra chúng gồm đúng hai loại đen và trắng. Đến giữa giờ học, Va-xa thôi không đếm nữa – nó đã dếm được a con quạ trắng và b con quạ đen ngoài cửa sổ.
Bây giờ đến cuối giờ học không còn nhiều thời gian nên Va-xa quyết định nghe thầy giáo giảng bài. Đúng lúc này, thầy giáo đang giảng về ước số chung lớn nhất của hai số nguyên. Va-xa là một cậu bé tài năng nó hiểu ngay khái niệm này. Nó tính ngay được ước chung lớn nhất của hai số a và b. Sau đó nó nghĩ ra một khái niệm mới là ước chung dễ thương của hai số x và y đó là ước số chung của x và y có tổng các chữ số là lớn nhất.
Input. Tên tệp là mcd.inp
Một dòng duy nhất chứa hai số nguyên a và b (1≤a, b≤109)
Output. Tên tệp là mcd.out
Một dòng chứa ước chung dễ thương của a và b. Nếu có nhiều kết quả thì dẫn ra một kết quả nào đó.
MCD.INP |
MCD.OUT |
220 440 |
55 |
Bài 3. Đếm các cặp số nguyên tố cùng nhau
Time Limit: 0.5 giây / test
Memory Limit: 64 MB, 8 MB ngăn xếp
Hãy xem xét các số nguyên N và D. Xác định số lượng các cặp số A và B mà cả hai số A và B đều không vượt quá N và có ước số chung lớn nhất là D.
Input. Dòng đầu tiên của file cntgcd.in là hai số nguyên N và D ngăn cách bởi một dấu trống
Output. Dòng đầu tiên của file cntgcd.out sẽ chứa một số nguyên T là số cặp số nguyên không vượt quá N và có ước số chung lớn nhất bằng D.
Hạn chế.
- 1 <N ≤ 109
- 0 <D ≤ N
- Các cặp (A, B) sẽ được coi là giống cặp (B, A)
Ví dụ.
Cntgcd.in |
Cntgcd.out |
20 5 |
6 |
Giải thích. Sáu cặp là:
(5, 5) (5, 10) (5, 15) (5, 20) (10, 15) (15, 20)