Giao và hợp của hai tập
Xem dạng PDFCho hai dãy số nguyên ~A~ và ~B~ (các giá trị có thể lặp lại trong mỗi dãy). Xem mỗi dãy là một tập hợp (mỗi giá trị chỉ tính một lần). Hãy đếm số phần tử của giao (các giá trị có trong cả hai tập) và của hợp (các giá trị có ít nhất trong một tập).
Dữ liệu vào
Dòng đầu tiên chứa hai số nguyên ~n, m~ (~1 \le n, m \le 1000~) là số phần tử của dãy ~A~ và dãy ~B~.
Dòng thứ hai chứa ~n~ số nguyên của ~A~, dòng thứ ba chứa ~m~ số nguyên của ~B~ (các giá trị từ ~1~ đến ~10^9~).
Kết quả
In ra hai số: số phần tử của giao và số phần tử của hợp, cách nhau bởi dấu cách.
Ví dụ
Ví dụ 1
Input:
4 5
1 2 3 4
3 4 5 6 7
Output:
2 7
Ví dụ 2
Input:
3 3
1 2 3
4 5 6
Output:
0 6
Giải thích
Với A = {1, 2, 3, 4} và B = {3, 4, 5, 6, 7}: giao là {3, 4} (~2~ phần tử), hợp là {1, 2, 3, 4, 5, 6, 7} (~7~ phần tử). set tự loại bỏ giá trị trùng và cho phép kiểm tra "có trong tập không" rất nhanh bằng count.