Bẻ thanh sô cô la

Đề bài

Mô tả

Bạn có một thanh sô cô la hình chữ nhật gồm n×m ô vuông đơn vị. Bạn muốn ăn đúng k ô vuông, nên có thể phải bẻ thanh sô cô la ra thành nhiều mảnh.

Trong một lần bẻ, bạn chọn một mảnh sô cô la hình chữ nhật bất kỳ và bẻ nó thành hai mảnh hình chữ nhật. Chỉ được bẻ dọc theo các đường thẳng giữa các ô, theo chiều ngang hoặc chiều dọc. Chi phí của một lần bẻ bằng bình phương độ dài đường bẻ.

Ví dụ, với một mảnh 2×3: nếu bẻ ngang thì được hai mảnh 1×3 (chi phí 32=9); nếu bẻ dọc thì được hai mảnh, chẳng hạn 2×12×2 (chi phí 22=4).

Hãy tìm tổng chi phí nhỏ nhất để sau tất cả các lần bẻ, tồn tại một tập các mảnh hình chữ nhật có tổng diện tích đúng bằng k ô vuông. k ô này là các ô bạn sẽ ăn, chúng không nhất thiết tạo thành một mảnh hình chữ nhật duy nhất. Phần n·mk ô còn lại cũng không cần tạo thành một hình chữ nhật.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t là số bộ truy vấn.
  • Mỗi dòng trong t dòng tiếp theo chứa ba số nguyên n, m, k.

Dữ liệu ra

Với mỗi bộ n, m, k, in ra trên một dòng chi phí nhỏ nhất cần thiết để có thể ăn đúng k ô sô cô la.

Ràng buộc

  • 1t40910
  • 1n,m30
  • 1kmin(n·m,50)

Ví dụ

Input Output Giải thích
4
2 2 1
2 2 3
2 2 2
2 2 4
5
5
4
0
Truy vấn 1 (k=1): bẻ 2×2 thành hai mảnh 2×1 (chi phí 22=4), rồi bẻ một mảnh 2×1 thành hai ô 1×1 (chi phí 12=1), tổng 5. Truy vấn 3 (k=2): chỉ cần bẻ 2×2 thành hai mảnh 2×1, chi phí 4. Truy vấn 4 (k=4): ăn cả thanh, không cần bẻ, chi phí 0.
3
30 30 50
1 30 15
7 7 25
904
1
65
Với dải 1×30 cần lấy 15 ô: chỉ cần bẻ một nhát tại cột thứ 15, độ dài đường bẻ là 1 nên chi phí là 12=1. Với thanh 30×30 cần lấy 50 ô, chi phí tối thiểu là 904.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0