Cuộc chơi cân não
Đề bài
Mô tả
Hai người chơi A và B, mỗi người có một danh sách gồm số nguyên. Cả hai đều muốn tối đa hóa hiệu số giữa điểm của mình và điểm của đối thủ.
Trong một lượt, người chơi có thể thực hiện một trong hai hành động:
- Cộng vào điểm của mình một phần tử bất kỳ trong danh sách của chính mình (nếu danh sách của mình chưa rỗng); phần tử đó bị xóa khỏi danh sách sau đó.
- Xóa một phần tử bất kỳ khỏi danh sách của đối thủ (nếu danh sách của đối thủ chưa rỗng).
Nếu trong danh sách có nhiều phần tử bằng nhau thì mỗi hành động chỉ tác động lên đúng một phần tử. Ví dụ, với danh sách , nếu chọn giá trị thì chỉ một phần tử bị xóa (và được cộng vào điểm nếu là hành động cộng điểm).
Người chơi A đi trước. Trò chơi kết thúc khi cả hai danh sách đều rỗng. Hãy tìm hiệu giữa điểm của A và điểm của B () khi cả hai chơi tối ưu.
Chơi tối ưu nghĩa là ở mỗi lượt, mỗi người chọn nước đi giúp tối đa hóa hiệu số cuối cùng giữa điểm của mình và điểm của đối thủ, biết rằng đối thủ cũng làm như vậy.
Dữ liệu vào
- Dòng đầu chứa số nguyên : kích thước mỗi danh sách.
- Dòng thứ hai chứa số nguyên : danh sách của người chơi A (người đi trước).
- Dòng thứ ba chứa số nguyên : danh sách của người chơi B.
Dữ liệu ra
- Một số nguyên duy nhất: hiệu khi cả hai chơi tối ưu.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 1 4 5 1 |
0 | A xóa số 5 của B. B xóa số 4 của A. A lấy số 1 của mình. B lấy số 1 của mình. Điểm của A là 1, của B là 1, hiệu bằng 0. |
| 3 100 100 100 100 100 100 |
0 | Dù chơi thế nào, hai người cũng cộng vào điểm cùng số lượng phần tử bằng nhau nên hiệu luôn bằng 0. |
| 2 2 1 5 6 |
-3 | A xóa 6 của B, B lấy 5 của mình, A lấy 2 của mình, B xóa 1 của A. Điểm của A là 2, của B là 5, hiệu là . |
Bình luận