trang chủ / bài tập / sokoban1d

Sokoban một chiều

Đề bài

Mô tả

Bạn đang chơi một trò chơi giống Sokoban trên đường thẳng số nguyên vô tận. Bạn bắt đầu tại vị trí 0. Có n hộp đặt tại các vị trí a1,a2,,an (phân biệt, khác 0). Có m vị trí đặc biệt b1,b2,,bm (phân biệt, khác 0).

Mỗi nước đi, bạn di chuyển sang trái hoặc sang phải 1 đơn vị. Nếu theo hướng đó có một hộp ngay sát bạn, bạn sẽ đẩy hộp đó đi 1 đơn vị về phía trước; nếu hộp đó lại sát một hộp khác thì hộp tiếp theo cũng bị đẩy, và cứ như vậy. Bạn không thể đi xuyên qua hộp, không thể kéo hộp về phía mình.

Bạn được phép thực hiện một số lượng nước đi bất kỳ (có thể là 0). Mục tiêu là đặt được càng nhiều hộp lên các vị trí đặc biệt càng tốt. Lưu ý rằng một số hộp có thể đã sẵn ở vị trí đặc biệt ngay từ đầu.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t — số bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm ba dòng:
    • Dòng 1: hai số nguyên nm.
    • Dòng 2: n số nguyên a1<a2<<an — vị trí các hộp.
    • Dòng 3: m số nguyên b1<b2<<bm — vị trí đặc biệt.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra một số nguyên — số hộp nhiều nhất có thể đặt lên vị trí đặc biệt.

Ràng buộc

  • 1t1000
  • 1n,m2·105
  • 109ai,bj109, ai0, bj0.
  • Tổng n trên tất cả bộ dữ liệu không vượt quá 2·105. Tổng m trên tất cả bộ dữ liệu không vượt quá 2·105.

Ví dụ

Input Output Giải thích
5
5 6
-1 1 5 11 15
-4 -3 -2 6 7 15
2 2
-1 1
-1000000000 1000000000
2 2
-1000000000 1000000000
-1 1
3 5
-1 1 2
-2 -1 1 2 5
2 1
1 2
10
4
2
0
3
1
Bộ 1: đi trái đẩy hộp 1 thành 2 (đặt được 2); đi phải đẩy nhóm 1,5 lên các vị trí phù hợp; hộp 15 vốn ở vị trí đặc biệt. Tổng đạt được 4. Bộ 2: hai hộp 11 chỉ cần đẩy tới 10000000001000000000 là đạt 2. Bộ 3: các hộp ở quá xa các vị trí đặc biệt, không thể đặt hộp nào.

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