trang chủ / đề bài / dhbb23_cbg_11_a

Cắt hình chữ nhật

Đề bài

Mô tả

Có một hình chữ nhật M×N ô, mỗi lần ta được phép cắt hình chữ nhật thành hai hình chữ nhật con theo chiều ngang hoặc chiều dọc (đường cắt đi dọc theo các đường kẻ ô, cắt đứt hẳn hình chữ nhật đang cắt) và lại tiếp tục cắt các hình chữ nhật con cho đến khi được hình vuông thì dừng.

Yêu cầu: Hỏi có thể cắt hình chữ nhật M×N thành ít nhất bao nhiêu hình vuông.

Dữ liệu vào

Gồm một số dòng (không quá 104 dòng), mỗi dòng là một test chứa một cặp số nguyên M,N (1≤M,N≤100). Dữ liệu kết thúc ở cuối file.

Dữ liệu ra

Gồm một số dòng là kết quả tương ứng với dữ liệu vào: với mỗi dòng của dữ liệu vào, in ra số hình vuông ít nhất.

Ràng buộc

  • 1≤M,N≤100.
  • Số dòng của dữ liệu vào không quá 104.

Subtasks

  • 60% số test: 1≤M,N≤20.
  • 40% số test: 20<M,N≤100.

Ví dụ

Input Output Giải thích
10 2 5 Cắt thành 5 hình vuông 2×2.
5 6
2 4
7 7
1 9
5
2
1
9
Có 4 test. Hình 5×6: cắt thành 3×6 và 2×6, rồi 3×6 thành hai hình vuông 3×3, 2×6 thành ba hình vuông 2×2 (cắt hình vuông 5×5 trước sẽ cần 6 hình). Hình 2×4 cho 2 hình vuông 2×2; hình 7×7 đã là hình vuông; hình 1×9 cho 9 hình vuông 1×1.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0