Tìm vị trí ô tô

Xem PDF

Điểm: 15 Thời gian: 3.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Timur đang di chuyển trên một trục số từ điểm \(0\) đến điểm \(n\) bằng ô tô. Ô tô bắt đầu chuyển động từ điểm \(0\) tại thời điểm phút thứ \(0\).

Trên trục số có \(k + 1\) biển báo tại các điểm \(0, a_1, a_2, \dots, a_k\). Timur biết rằng ô tô sẽ lần lượt đi qua các biển báo này tại các thời điểm tương ứng là phút \(0, b_1, b_2, \dots, b_k\). Các dãy \(a\)\(b\) là các dãy tăng nghiêm ngặt với \(a_k = n\).

Giữa hai biển báo liền kề bất kỳ, ô tô di chuyển với vận tốc không đổi. Timur có \(q\) truy vấn: mỗi truy vấn là một số nguyên \(d\). Với mỗi truy vấn, hãy tính xem ô tô mất bao nhiêu phút để đến được điểm \(d\), làm tròn xuống số nguyên gần nhất.

Dữ liệu vào

  • Dòng đầu tiên chứa một số nguyên \(t\) (\(1 \le t \le 10^4\)) — số lượng bộ dữ liệu (test case).
  • Với mỗi test case:
  • Dòng đầu tiên chứa ba số nguyên \(n, k, q\) (\(1 \le k, q \le 10^5; k \le n \le 10^9\)) — lần lượt là điểm đến cuối cùng, số lượng biển báo (không tính gốc \(0\)) và số lượng truy vấn.
  • Dòng thứ hai chứa \(k\) số nguyên \(a_1, a_2, \dots, a_k\) (\(1 \le a_i \le n; a_i < a_{i+1}; a_k = n\)).
  • Dòng thứ ba chứa \(k\) số nguyên \(b_1, b_2, \dots, b_k\) (\(1 \le b_i \le 10^9; b_i < b_{i+1}\)).
  • \(q\) dòng tiếp theo, mỗi dòng chứa một số nguyên \(d\) (\(0 \le d \le n\)) — vị trí cần tính thời gian.
  • Dữ liệu đảm bảo tổng của \(k\) trên tất cả các test case không vượt quá \(10^5\), và tổng của \(q\) trên tất cả các test case không vượt quá \(10^5\).

Dữ liệu ra

  • Với mỗi truy vấn, in ra một số nguyên duy nhất — số phút đã trôi qua cho đến khi ô tô đạt tới điểm \(d\) (đã làm tròn xuống).

Ví dụ

Input Output
4
10 1 3
10
10
0
6
7
10 2 4
4 10
4 7
6
4
2
7
1000000000 1 1
1000000000
1000000000
999999999
6 1 3
6
5
2
6
5
0 6 7
5 4 2 5
999999999
1 5 4

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.