trang chủ / đề bài / dhbb15_10_lock

Khóa số

Đề bài

Mô tả

Bạn nhận được một hộp quà với một khóa số ở bên ngoài. Thông tin hiển thị trên khóa là một dãy n số nguyên a1,a2,…,an, các số nằm trong phạm vi từ 0 đến k. Có (n+2) phím dùng để thay đổi giá trị các số: một phím nằm bên trái khóa, một phím nằm bên phải khóa, dưới mỗi số có một phím. Bạn nhanh chóng nhận ra rằng:

  • Khi bấm vào phím nằm bên trái khóa thì giá trị tất cả các số trên khóa tăng lên 1, nếu số nào đang có giá trị là k thì sau khi bấm nó nhận giá trị 0. Ví dụ, nếu dãy là (10,9,0) và k=10, khi bấm vào phím nằm bên trái khóa thì trạng thái mới của dãy là (0,10,1).
  • Khi bấm vào phím nằm bên phải khóa thì tất cả các số dịch chuyển sang bên phải, trừ số cuối cùng, số cuối cùng trở thành số đầu tiên. Ví dụ, nếu dãy là (10,9,0) và k=10, khi bấm vào phím nằm bên phải khóa thì trạng thái mới của dãy là (0,10,9).
  • Khi bấm vào phím nằm bên dưới số thứ i (i=1,2,…,n) thì giá trị số thứ i trên khóa tăng lên 1, nếu số đang có giá trị là k thì sau khi bấm nó nhận giá trị 0. Ví dụ, nếu dãy là (10,9,0) và k=10, khi bấm vào phím nằm bên dưới số thứ 2 thì trạng thái mới của dãy là (10,10,0).

Trên tờ bưu thiếp gửi kèm chiếc hộp có ghi một dãy n số nguyên b1,b2,…,bn chính là mật mã để mở được chiếc hộp. Chiếc hộp sẽ được mở nếu thông tin hiển thị trên khóa số là dãy b1,b2,…,bn.

Yêu cầu: Cho hai dãy số nguyên a1,a2,…,an, b1,b2,…,bn và số nguyên dương k, hãy tìm cách bấm ít lần nhất để mở được chiếc hộp.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên dương n,k;
  • Dòng thứ hai chứa n số nguyên không âm a1,a2,…,an (ai≤k);
  • Dòng thứ ba chứa n số nguyên không âm b1,b2,…,bn (bi≤k).

Dữ liệu ra

In ra một số nguyên là số lần bấm ít nhất để mở được chiếc hộp.

Ràng buộc

  • 1≤n≤300, 1≤k≤106;
  • 0≤ai,bi≤k.
  • Có 20% số test ứng với 20% số điểm có n=3 và k≤10;
  • Có 40% số test ứng với 40% số điểm có n≤30 và k≤1000;
  • Có 40% số test còn lại ứng với 40% số điểm có n≤300 và k≤106.

Ví dụ

Input Output Giải thích
3 10
10 9 0
1 0 0
3 Bấm phím bên phải: (0,10,9); bấm phím bên trái: (1,0,10); bấm phím dưới số thứ 3: (1,0,0).
1 5
3
1
4 Ví dụ bổ sung: số duy nhất phải đi vòng 3→4→5→0→1, mỗi bước cần một lần bấm.
4 9
1 2 3 4
7 8 9 6
8 Ví dụ bổ sung: bấm phím bên phải 3 lần được (2,3,4,1) (phím chỉ dịch sang phải nên không thể dịch sang trái một lần), rồi bấm phím bên trái 5 lần được (7,8,9,6).

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