ConneR và nhà hàng

Đề bài

Mô tả

Một tòa nhà có n tầng được đánh số từ 1 đến n. Trên mỗi tầng đều có một nhà hàng. Tuy nhiên do đang sửa chữa nên có k nhà hàng hiện đang đóng cửa.

Bạn đang ở tầng s. Giữa hai tầng liền kề có một cầu thang nối chúng; đi qua một cầu thang tốn một bước (di chuyển từ tầng i sang tầng i+1 hoặc ngược lại).

Hãy tìm số bước (số cầu thang) ít nhất cần đi để tới được một tầng có nhà hàng đang mở cửa. Nếu nhà hàng ngay tại tầng s đang mở thì đáp án là 0.

Dữ liệu vào

Dòng đầu chứa số nguyên t — số lượng bộ dữ liệu. Với mỗi bộ:

  • Dòng thứ nhất chứa ba số nguyên n, s, k — số tầng của tòa nhà, tầng bạn đang ở, và số nhà hàng đang đóng cửa.
  • Dòng thứ hai chứa k số nguyên phân biệt a1,a2,,ak — chỉ số các tầng có nhà hàng đang đóng cửa.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra một số nguyên — số cầu thang ít nhất cần đi để tới một tầng có nhà hàng đang mở.

Ràng buộc

  • 1t1000
  • 2n109
  • 1sn
  • 1kmin(n1,1000)
  • 1ain, các ai phân biệt.
  • Tổng k trên tất cả các bộ dữ liệu không vượt quá 1000.

Ví dụ

Input Output Giải thích
5
5 2 3
1 2 3
4 3 3
4 1 2
10 2 6
1 2 3 4 5 7
2 1 1
2
2
0
4
0
2
Bộ 1: tầng mở gần nhất là tầng 4, cách 2 bước. Bộ 2: tầng 3 đang mở nên đáp án là 0. Bộ 3: tầng mở gần nhất là tầng 6, cách 4 bước.
1
100 76 8
76 75 36 67 41 74 10 77
2 Tầng 76 và 77 đóng, nhưng tầng 78 mở, cách 2 bước.

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