trang chủ / bài tập / cielduel

Ciel và Trận đấu bài

Đề bài

Mô tả

Ciel đang chơi một trò chơi bài với đối thủ Jiro.

Jiro có n lá bài, mỗi lá có một vị trí (Tấn công hoặc Phòng thủ) và một sức mạnh. Ciel có m lá bài, tất cả các lá của Ciel đều ở vị trí Tấn công.

Đến lượt tấn công của Ciel. Ciel có thể thực hiện thao tác sau nhiều lần:

  1. Chọn một lá bài X của mình chưa được dùng trước đó.
  2. Nếu lúc đó Jiro không còn lá bài nào sống, Jiro nhận sát thương bằng sức mạnh của X. Ngược lại, Ciel phải chọn một lá bài Y còn sống của Jiro, khi đó:
    • Nếu Y ở vị trí Tấn công, cần thoả mãn (sức mạnh X) (sức mạnh Y). Sau đòn này, lá Y chết và Jiro nhận sát thương bằng (sức mạnh X) (sức mạnh Y).
    • Nếu Y ở vị trí Phòng thủ, cần thoả mãn (sức mạnh X) > (sức mạnh Y). Sau đòn này, lá Y chết nhưng Jiro không nhận sát thương.

Ciel có thể kết thúc lượt tấn công bất cứ lúc nào (tức là không bắt buộc phải dùng hết các lá bài).

Hãy tính tổng sát thương lớn nhất mà Jiro có thể phải nhận.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm — số lá bài của Jiro và của Ciel.
  • n dòng tiếp theo, mỗi dòng chứa một xâu vị trí và một số nguyên sức mạnh. Vị trí là xâu "ATK" (Tấn công) hoặc "DEF" (Phòng thủ).
  • m dòng tiếp theo, mỗi dòng chứa một số nguyên — sức mạnh của một lá bài của Ciel.

Dữ liệu ra

  • Một số nguyên: tổng sát thương lớn nhất mà Jiro có thể nhận.

Ràng buộc

  • 1n,m100
  • 0 sức mạnh 8000

Ví dụ

Input Output Giải thích
2 3
ATK 2000
DEF 1700
2500
2500
2500
3000 Dùng một lá 2500 đánh "ATK 2000" (sát thương 25002000=500), một lá 2500 phá "DEF 1700" (không gây sát thương). Giờ Jiro hết bài nên lá 2500 cuối gây thẳng 2500. Tổng 500+2500=3000.
3 4
ATK 10
ATK 100
ATK 1000
1
11
101
1001
992 Dùng lá 1001 đánh "ATK 100" và lá 101 đánh "ATK 10", rồi dừng lại. Tổng (1001100)+(10110)=992.
2 4
DEF 0
ATK 0
0
0
1
1
1 Có thể phá "ATK 0" bằng lá sức mạnh 0 (vì 00), nhưng không thể phá "DEF 0" bằng lá đó (cần >0).

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0