Hệ thống định vị xe buýt

Đề bài

Mô tả

Một tuyến xe buýt chạy dọc con phố chính của thành phố Berland. Con phố là một đoạn thẳng rất dài, trên đó có n điểm dừng. Điểm dừng thứ i cách quảng trường trung tâm một khoảng ai; các khoảng cách đôi một khác nhau và các điểm dừng được đánh số theo thứ tự tăng dần của khoảng cách, tức là ai<ai+1 với mọi i từ 1 đến n−1.

Xe buýt xuất phát từ điểm dừng 1, lần lượt đi qua các điểm dừng 2,3,… cho tới điểm dừng n, rồi quay đầu và chạy ngược lại về điểm dừng 1 qua tất cả các điểm dừng trung gian, sau đó lại quay đầu và chạy về phía điểm dừng n. Xe chạy liên tục như vậy suốt cả ngày và chỉ đổi chiều tại hai điểm dừng đầu mút 1 và n.

Mỗi khi xe đi qua một điểm dừng, hệ thống định vị ghi lại số hiệu của điểm dừng đó.

Xét một đoạn liên tiếp của hành trình, bắt đầu tại một điểm dừng và kết thúc tại một điểm dừng. Hệ thống đưa ra danh sách số hiệu các điểm dừng mà xe đã đi qua trong đoạn đó, trong đó số hiệu của một điểm dừng xuất hiện đúng bằng số lần xe đi qua nó (tính cả điểm dừng đầu và điểm dừng cuối của đoạn). Khó khăn nằm ở chỗ danh sách được đưa ra theo thứ tự không giảm chứ không phải theo thứ tự xe thực sự đi qua.

Hãy tính quãng đường xe đã đi trong đoạn hành trình đó. Nếu có nhiều đoạn hành trình khác nhau cùng khớp với danh sách nhưng quãng đường của chúng không bằng nhau, hãy in ra −1.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n là số điểm dừng.
  • Dòng thứ hai chứa n số nguyên a1,a2,…,an theo thứ tự tăng dần.
  • Dòng thứ ba chứa số nguyên m là số điểm dừng mà xe đã đi qua trên đoạn hành trình.
  • Dòng thứ tư chứa m số nguyên b1≤b2≤…≤bm là danh sách đã sắp xếp không giảm.

Dữ liệu đảm bảo danh sách luôn ứng với ít nhất một đoạn hành trình hợp lệ.

Dữ liệu ra

In ra một số nguyên duy nhất là quãng đường xe đã đi, hoặc −1 nếu không xác định được duy nhất.

Ràng buộc

  • 2≤n≤2·105
  • 1≤ai≤109 và ai<ai+1
  • 1≤m≤4·105
  • 1≤bi≤n và bi≤bi+1

Ví dụ

Input Output Giải thích
3
10 200 300
4
1 2 2 3
-1 Có hai đoạn hành trình khớp với danh sách: 2→1→2→3 dài 190+190+100=480, và 2→3→2→1 dài 100+100+190=390. Hai quãng đường khác nhau nên không xác định được.
3
1 2 3
4
1 2 2 3
3 Vẫn là hai đoạn hành trình như ví dụ trên, nhưng lần này cả hai đều dài 3 nên đáp án là duy nhất.
6
2 3 5 7 11 13
5
3 4 5 5 6
10 Đoạn hành trình là 5→6→5→4→3, quãng đường 2+2+4+2=10.
6
2 3 5 7 11 13
9
1 2 2 3 3 4 5 5 6
16 Đoạn hành trình là 3→2→1→2→3→4→5→6→5, quãng đường 2+1+1+2+2+4+2+2=16. Xe quay đầu tại cả hai đầu mú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