Phân công công việc
Xem dưới dạng PDF
Gửi bài giải
Điểm:
20
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Có \(N\) người và \(M\) công việc. Mỗi người chỉ có thể làm được một số công việc nhất định. Mỗi người chỉ được giao tối đa một công việc, và mỗi công việc chỉ được giao cho tối đa một người. Hãy tìm số lượng người có thể được giao việc nhiều nhất.
Định dạng đầu vào
- Dòng đầu chứa hai số nguyên \(N, M\) (\(1 \le N, M \le 2000\)).
- \(N\) dòng tiếp theo, dòng thứ \(i\) mô tả người thứ \(i\):
- Đầu dòng là số nguyên \(k_i\) (\(0 \le k_i \le M\)) — số công việc người \(i\) có thể làm.
- Tiếp theo là \(k_i\) số nguyên \(a_{i,1}, a_{i,2}, \dots, a_{i,k_i}\) — các công việc mà người \(i\) có thể làm (\(1 \le a_{i,j} \le M\)).
Định dạng đầu ra
- Một số nguyên duy nhất là số người được giao việc tối đa.
Ràng buộc
| Subtask | Điểm | Ràng buộc |
|---|---|---|
| 1 | \(2\) | \(N, M \le 10\) |
| 2 | \(2\) | \(N, M \le 50\) |
| 3 | \(3\) | \(N, M \le 200\) |
| 4 | \(3\) | \(N, M \le 500\) |
| 5 | \(4\) | \(N, M \le 1000\) |
| 6 | \(6\) | \(N, M \le 2000\) |
Ví dụ
Input:
3 3
2 1 2
2 2 3
1 1
Output:
3
Nhận xét