#TP00005. Vũ hội BerSU (BerSU Ball)

    ID: 64 Loại: Thông thường 1000ms 256MiB Tried: 1 Đã chấp nhận: 1 Độ khó: 1 Đăng bởi: Nhãn>Sorting and SearchingSorting algorithmsAmortized AnalysisTwo pointersGreedy AlgorithmsGreedy proof techniques

Vũ hội BerSU (BerSU Ball)

Vũ hội BerSU (BerSU Ball)

Nguồn: Codeforces

Phiên bản: Phước Hưng OJ Extended

Đề bài

Đại học Quốc gia Berland đang tổ chức một buổi khiêu vũ nhân dịp kỷ niệm thành lập trường.

Có nn nam sinh và mm nữ sinh muốn tham gia buổi khiêu vũ.

Nam sinh thứ ii có mức kỹ năng khiêu vũ là aia_i, còn nữ sinh thứ jj có mức kỹ năng khiêu vũ là bjb_j.

Một nam sinh và một nữ sinh có thể tạo thành một cặp khiêu vũ nếu mức kỹ năng của họ chênh lệch không quá 11. Nói cách khác, nam sinh ii và nữ sinh jj có thể ghép thành một cặp khi:

∣ai−bj∣≤1.|a_i-b_j|\le 1.

Mỗi người chỉ có thể thuộc tối đa một cặp. Vì vậy, sau khi một nam sinh hoặc nữ sinh đã được ghép cặp, người đó không thể xuất hiện trong bất kỳ cặp nào khác.

Không bắt buộc phải ghép cặp cho tất cả mọi người.

Hãy tìm số lượng cặp khiêu vũ lớn nhất có thể tạo thành sao cho mọi cặp đều thỏa mãn điều kiện về mức kỹ năng.

Input

Dòng đầu tiên chứa số nguyên nn — số nam sinh.

Dòng thứ hai chứa nn số nguyên:

a1,a2,…,an,a_1,a_2,\ldots,a_n,

trong đó aia_i là mức kỹ năng khiêu vũ của nam sinh thứ ii.

Dòng thứ ba chứa số nguyên mm — số nữ sinh.

Dòng thứ tư chứa mm số nguyên:

b1,b2,…,bm,b_1,b_2,\ldots,b_m,

trong đó bjb_j là mức kỹ năng khiêu vũ của nữ sinh thứ jj.

Output

In ra một số nguyên — số lượng cặp khiêu vũ lớn nhất có thể tạo thành.

Trong mỗi cặp phải có đúng một nam sinh và một nữ sinh, đồng thời mức kỹ năng của hai người phải chênh lệch không quá 11.

Subtask

  • Subtask 1 — 30% — Time Limit: 1.00 s: 1≤n,m≤20001\le n,m\le 2000; 1≤ai,bj≤1091\le a_i,b_j\le 10^9.
  • Subtask 2 — 70% — Time Limit: 1.00 s: 1≤n,m≤2⋅1051\le n,m\le 2\cdot10^5; 1≤ai,bj≤1091\le a_i,b_j\le 10^9.

Ví dụ

Ví dụ 1

Input

4
1 4 6 2
5
5 1 5 7 9

Output

3

Giải thích

Mức kỹ năng của các nam sinh là:

[1,4,6,2][1,4,6,2]

và của các nữ sinh là:

[5,1,5,7,9].[5,1,5,7,9].

Có thể tạo 33 cặp, chẳng hạn:

  • nam sinh có kỹ năng 11 với nữ sinh có kỹ năng 11, độ chênh lệch là 00;
  • nam sinh có kỹ năng 44 với một nữ sinh có kỹ năng 55, độ chênh lệch là 11;
  • nam sinh có kỹ năng 66 với nữ sinh có kỹ năng 77, độ chênh lệch là 11.

Mỗi người chỉ xuất hiện trong một cặp và tất cả các cặp đều thỏa mãn điều kiện.

Không thể tạo được 44 cặp hợp lệ, vì vậy số cặp lớn nhất là:

3.3.

Ví dụ 2

Input

4
1 2 3 4
4
10 11 12 13

Output

0

Giải thích

Mức kỹ năng lớn nhất của các nam sinh là 44, trong khi mức kỹ năng nhỏ nhất của các nữ sinh là 1010.

Ngay cả cặp gần nhau nhất cũng có độ chênh lệch:

∣4−10∣=6>1.|4-10|=6>1.

Do đó không có nam sinh và nữ sinh nào có thể tạo thành một cặp hợp lệ.

Kết quả là:

0.0.

Ví dụ 3

Input

5
1 1 1 1 1
3
1 2 3

Output

2

Giải thích

Tất cả 55 nam sinh đều có mức kỹ năng bằng 11.

Ba nữ sinh có mức kỹ năng lần lượt là:

1, 2, 3.1,\ 2,\ 3.

Có thể:

  • ghép một nam sinh có kỹ năng 11 với nữ sinh có kỹ năng 11;
  • ghép một nam sinh khác có kỹ năng 11 với nữ sinh có kỹ năng 22.

Hai cặp này có độ chênh lệch lần lượt là 00 và 11.

Nữ sinh có kỹ năng 33 không thể ghép với bất kỳ nam sinh còn lại nào vì:

∣1−3∣=2>1.|1-3|=2>1.

Do đó số lượng cặp lớn nhất là:

2.2.