Trung vị của các dãy số


Submit solution

Points: 3 (partial)
Time limit: 1.0s
Memory limit: 67M

Author:
Problem type

Chú ý vấn đề có dữ liệu đầu vào lớn.

Hôm nay Koi mới học môn xác suất thống kê và học về khái niệm "trung vị". Koi rất hay nhầm lẫn giữa trung bình cộng và trung vị, do đó thầy của cậu đã đưa ra thuật toán để tìm trung vị của một dãy số có \(k\) phần tử bất kì gồm hai bước như sau:

  • Sắp xếp dãy số theo thứ tự tăng dần.
  • Nếu \(k\) lẻ thì trung vị là số thứ \((k + 1)/2\), nếu không thì lấy trung bình cộng của số thứ \(k/2 - 1\) và số thứ \(k/2 + 1\).

Thầy của Koi yêu cầu cả lớp thực hiện ghép hai dãy số cho trước rồi mới bắt đầu tìm trung vị, các bạn hãy lập trình giúp Koi thực hiện bài toán này nhé.

Ghi chú: Để kết quả luôn là số nguyên, bạn hãy tìm hai lần của trung vị.

Đầu vào

Dòng đầu tiên chứa hai số nguyên \(m\) và \(q\) \((1 \le q \le 20000)\), số lượng dãy số cho trước và số truy vấn ghép dãy số tìm trung vị.

\(2*,\) dòng tiếp theo đặc tả các dãy số, mỗi dãy số được đặc tả trên hai dòng như sau:

  • Dòng thứ nhất chứa số nguyên \(n\), số lượng phần tử của dãy số.
  • Dòng thứ hai chứa \(n\) số nguyên trong khoảng \([-10^6, 10^6]\).

\(q\) dòng cuối cùng, mỗi dòng chứa hai số nguyên \(i\) và \(j\) \((1 \le i, j \le n)\) mô tả truy vấn ghép dãy thứ \(i\) và dãy thứ \(j\) để tìm trung vị.

Tổng số lượng phần tử của các dãy số không vượt quá \(2 \times 10^6\).

Đầu ra

\(q\) dòng, mỗi dòng chứa duy nhất một số nguyên (hai lần của trung vị).

Subtask

\(40\%\) số test có \(q \le 1000\), mỗi dãy số có không quá \(1000\) phần tử.

Ví dụ

Đầu vào:

3 3
3
3 8 9
3
7 6 1
2
1 1
1 1
1 2
1 3

Đầu ra:

16
13
6
QDUY

Comments

There are no comments at the moment.