trang chủ / đề bài / fugitive

Vụ án kẻ chạy trốn

Đề bài

Mô tả

Trên một trục số có n hòn đảo được biểu diễn bởi các đoạn thẳng không giao nhau: đảo thứ i chiếm đoạn [li,ri] và thoả mãn ri<li+1 với mọi 1≤i≤n−1.

Bạn cần đặt một cây cầu nối mỗi cặp hai đảo liền kề. Một cây cầu có độ dài a có thể nối đảo i và đảo i+1 nếu tồn tại hai toạ độ x,y sao cho li≤x≤ri, li+1≤y≤ri+1 và y−x=a.

Bạn có m cây cầu cho sẵn, mỗi cây cầu có một độ dài và chỉ được dùng nhiều nhất một lần. Hãy xác định xem có thể chọn n−1 cây cầu trong số đó và xếp vào n−1 vị trí (giữa các cặp đảo liền kề) hợp lệ hay không, và nếu có hãy chỉ ra một phương án.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên n và m.
  • n dòng tiếp theo, dòng thứ i chứa hai số nguyên li và ri — toạ độ hai đầu của đảo thứ i.
  • Dòng cuối chứa m số nguyên a1,a2,…,am — độ dài các cây cầu.

Dữ liệu ra

  • Nếu không thể, in ra một dòng chứa No.
  • Ngược lại, dòng đầu in Yes, dòng thứ hai in n−1 số nguyên b1,b2,…,bn−1, trong đó bi là chỉ số cây cầu (đánh số từ 1) được dùng để nối đảo i và đảo i+1. Các bi phải đôi một khác nhau. Nếu có nhiều phương án, in ra một phương án bất kỳ.

In Yes / No đúng định dạng chữ hoa/chữ thường như trên.

Ràng buộc

  • 2≤n≤2·105
  • 1≤m≤2·105
  • 1≤li≤ri≤1018
  • ri<li+1 với mọi 1≤i≤n−1
  • 1≤aj≤1018

Ví dụ

Input Output Giải thích
4 4
1 4
7 8
9 10
12 14
4 5 3 8
Yes
2 3 1
Dùng cầu 2 (độ dài 5) nối đảo 1–2 (chọn x=3,y=8), cầu 3 (độ dài 3) nối đảo 2–3 (chọn x=7,y=10), cầu 1 (độ dài 4) nối đảo 3–4 (chọn x=10,y=14). Cầu 4 độ dài 8 không dùng.
2 2
11 14
17 18
2 9
No Cây cầu thứ nhất quá ngắn, cây cầu thứ hai quá dài, không có phương án hợp lệ.
2 1
1 1
1000000000000000000 1000000000000000000
999999999999999999
Yes
1
Khoảng cách bắt buộc giữa hai đảo là 1018−1, đúng bằng độ dài cây cầu duy nhất.

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