A007 - Điệp viên 007

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Điệp viên 007 được giao nhiệm vụ do thám thông tin về nội bộ của các căn cứ quân sự của đối phương. Đối với mỗi căn cứ, điệp viên 007 biết danh sách các người lính làm việc trong đó. Mỗi người lính đều biết thông tin về nội bộ của căn cứ của mình. Mỗi người lính đòi hỏi một chi phí để mua được thông tin từ anh ta. Từ ban chỉ huy điệp viên 007 cũng nhận được thông tin về các sĩ quan trong căn cứ. Mỗi sĩ quan có một danh sách những người quen gồm cả các binh lính lẫn các sĩ quan trong các căn cứ mà 007 cần do thám. Mỗi sĩ quan nắm được thông tin về nội bộ của các căn cứ mà các người quen của anh nắm được. Mỗi sĩ quan cũng đòi hỏi một chi phí để mua những thông tin mà anh ta nắm giữ. Để thu được thông tin từ những người lính và các sĩ quan, điệp viên 007 phải trả chi phí mà họ đòi hỏi.

Yêu cầu: Giúp điệp viên 007 tìm các nắm được thông tin về nội bộ của tất cả các căn cứ quân sự của đối phương với chi phí nhỏ nhất.

Input

  • Dòng đầu tiên chứa ba số ~B, N, M (1 ≤ B ≤ 12, 1 ≤ N, M ≤ 10^5)~: theo thứ tự là số lượng căn cứ, số lượng lính và số lượng sĩ quan;
  • Mỗi dòng trong ~B~ dòng tiếp theo chứa thông tin về danh sách các người lính của căn cứ đó: đầu tiên là số nguyên ~K~ là số lượng người lính, tiếp đến là ~K~ số nguyên, mỗi số là chi phí phải trả để mua thông tin của một người lính trong danh sách;
  • Mỗi dòng trong ~M~ dòng tiếp theo chứa thông tin về các sĩ quan: đầu tiên là hai số nguyên ~S, R~ theo thứ tự là chi phí phải trả để mua thông tin và số lượng người quen của một sĩ quan, tiếp đến là ~R~ số là các số hiệu của các người quen của sĩ quan này. Các người lính được gán cho số hiệu từ 1 đến ~N~, các sĩ quan được gán số hiệu từ ~N+1~ đến ~N+M~ theo thứ tự xuất hiện trong dữ liệu vào.
  • Chi phí phải trả để mua thông tin là một số nguyên không âm không vượt quá ~10^6~. Chú ý là mối quan hệ quen biết ở đây được coi là một chiều, nghĩa là nếu A quen B thì không nhất thiết B cũng phải quen A.

Output

  • Ghi ra chi phí nhỏ nhất mà điệp viên 007 phải trả để thực hiện nhiệm vụ.

Sample

Input #1
2 2 1
1 10
1 10
13 2 1 2
Output #1
13
Input #2
2 6 0
3 12 13 14
3 15 16 17
Output #2
27
Input #3
2 4 4
2 7 34
2 13 90
111 2 1 7
45 3 4 5 8
15 1 6
1 0
Output #3
15

Hint

  • Mua thông tin từ sĩ quan 3.
  • Mua thông tin từ người lính 1 và 4 với chi phí 12+15=27
  • Mua thông tin từ sĩ quan 7. Sĩ quan 7 nắm thông tin về cả hai căn cứ từ sĩ quan 6. Sĩ quan 6 nắm thông tin về căn cứ 2 từ người lính 3, thông tin về căn cứ 1 từ sĩ quan 5 (sĩ quan 5 nắm thông tin này từ người lính 2)

Problem source: Kc97ble - Free Contest 18


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.