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

Không có ý kiến tại thời điểm này.