Bài 19.2. Danh Sách Sinh Viên Tham Gia Sự Kiện - [Độ khó: Khá]
Bài 19.2. Danh Sách Sinh Viên Tham Gia Sự Kiện - [Độ khó: Khá]
Mô tả bài tập: Một trường học tổ chức hai sự kiện lớn: "Ngày hội Khoa học" và "Giải đấu Thể thao". Ban tổ chức đã thu thập được danh sách ID của các sinh viên đăng ký tham gia mỗi sự kiện. Để đánh giá mức độ quan tâm, bạn cần tìm ra:
- Số lượng sinh viên tham gia cả hai sự kiện.
- Số lượng sinh viên chỉ tham gia một trong hai sự kiện (không tham gia cả hai).
INPUT FORMAT
Dòng đầu tiên chứa hai số nguyên \(N_1\) và \(N_2\) (\(1 \le N_1, N_2 \le 10^5\)), lần lượt là số lượng sinh viên đăng ký "Ngày hội Khoa học" và "Giải đấu Thể thao". Dòng thứ hai chứa \(N_1\) số nguyên, là ID của các sinh viên tham gia "Ngày hội Khoa học". Các ID này được đảm bảo là duy nhất trong danh sách này. Dòng thứ ba chứa \(N_2\) số nguyên, là ID của các sinh viên tham gia "Giải đấu Thể thao". Các ID này cũng được đảm bảo là duy nhất trong danh sách này. Các ID sinh viên là các số nguyên dương từ \(1\) đến \(10^9\).
OUTPUT FORMAT
In ra hai số nguyên trên một dòng, cách nhau bởi một khoảng trắng. Số thứ nhất là số lượng sinh viên tham gia cả hai sự kiện. Số thứ hai là số lượng sinh viên chỉ tham gia một trong hai sự kiện.
Ví dụ:
Input:
5 4
101 102 103 104 105
103 105 106 107
Output:
2 5
Giải thích:
- Gọi
set1
là tập hợp ID sinh viên tham gia Ngày hội Khoa học:{101, 102, 103, 104, 105}
. - Gọi
set2
là tập hợp ID sinh viên tham gia Giải đấu Thể thao:{103, 105, 106, 107}
. - Để tìm số sinh viên tham gia cả hai sự kiện (phép giao): Duyệt qua các phần tử trong
set1
và kiểm tra xem chúng có tồn tại trongset2
hay không.- Các ID có trong cả hai set là:
103
,105
. Vậy có 2 sinh viên tham gia cả hai sự kiện.
- Các ID có trong cả hai set là:
- Để tìm số sinh viên chỉ tham gia một trong hai sự kiện:
- Cách 1: Tính hợp của hai set (
set_union
), sau đó trừ đi số phần tử của phép giao. Hợp củaset1
vàset2
là{101, 102, 103, 104, 105, 106, 107}
có 7 phần tử. Số sinh viên chỉ tham gia một sự kiện = (số phần tử hợp) - (số phần tử giao) = 7 - 2 = 5. - Cách 2: Duyệt
set1
, đếm những phần tử không có trongset2
. Duyệtset2
, đếm những phần tử không có trongset1
. Tổng hai số đếm đó là kết quả.- Chỉ tham gia Ngày hội Khoa học:
{101, 102, 104}
(3 sinh viên). - Chỉ tham gia Giải đấu Thể thao:
{106, 107}
(2 sinh viên). - Tổng cộng: 3 + 2 = 5 sinh viên.
- Chỉ tham gia Ngày hội Khoa học:
- Cách 1: Tính hợp của hai set (
Comments