trang chủ / đề bài / fieldexp

Mở rộng mảnh đất

Đề bài

Mô tả

Bạn đang sở hữu một mảnh đất hình chữ nhật kích thước h×w (chiều dài h, chiều rộng w). Bạn muốn đặt lên mảnh đất một tấm thảm hình chữ nhật kích thước a×b sao cho các cạnh của tấm thảm song song với các cạnh của mảnh đất. Tấm thảm có thể xoay, nghĩa là đặt được khi và chỉ khi a≤h và b≤w, hoặc a≤w và b≤h.

Bạn có n vật phẩm mở rộng, vật phẩm thứ i mang hệ số ki. Khi sử dụng vật phẩm thứ i, bạn tự chọn một trong hai chiều của mảnh đất và nhân kích thước chiều đó với ki. Mỗi vật phẩm chỉ được dùng nhiều nhất một lần, và có thể dùng theo thứ tự tuỳ ý.

Hãy tìm số vật phẩm ít nhất cần sử dụng để đặt được tấm thảm lên mảnh đất. Nếu ngay từ đầu đã đặt được thì đáp án là 0; nếu dùng hết cả n vật phẩm vẫn không đặt được thì in ra −1.

Dữ liệu vào

  • Dòng đầu tiên chứa năm số nguyên a, b, h, w, n.
  • Dòng thứ hai chứa n số nguyên k1,k2,…,kn.

Dữ liệu ra

Một số nguyên duy nhất là đáp án, hoặc −1 nếu không thể đặt được tấm thảm.

Ràng buộc

  • 1≤a,b,h,w,n≤100000
  • 2≤ki≤100000

Ví dụ

Input Output Giải thích
3 3 2 4 4
2 5 4 10
1 Mảnh đất 2×4 chưa chứa được tấm thảm 3×3 vì chiều h=2<3. Dùng vật phẩm hệ số 5 cho chiều h, mảnh đất thành 10×4 và đặt được tấm thảm. Chỉ cần một vật phẩm.
3 4 1 1 3
2 3 2
3 Mảnh đất 1×1 cần trở thành ít nhất 3×4 (hoặc 4×3). Tích của cả ba hệ số là 2·3·2=12=3·4, nên bắt buộc phải dùng cả ba: nhân h với 3 và nhân w với 2 rồi 2, được mảnh đất 3×4.
5 5 1 2 3
2 2 3
-1 Cần h≥5 và w≥5 (hoặc ngược lại). Chia ba hệ số {2,2,3} thành hai nhóm, nhóm cho h phải có tích ≥5 và nhóm cho w phải có tích ≥⌈5/2⌉=3. Không có cách chia nào thoả mãn, chẳng hạn h nhận {2,3} cho h=6 nhưng w chỉ còn {2} nên w=4<5.

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