提交时间:2026-04-15 19:57:07
运行 ID: 436458
#include <iostream> #include <algorithm> using namespace std; int main() { int M, N; cin >> M >> N; int def[1005], atk[1005]; for (int i = 0; i < M; ++i) cin >> def[i]; for (int i = 0; i < N; ++i) cin >> atk[i]; // 从大到小排序 sort(def, def + M, greater<int>()); sort(atk, atk + N, greater<int>()); int i = 0, j = 0; int break_cnt = 0; while (i < M && j < N) { if (atk[j] > def[i]) { break_cnt++; i++; j++; } else { j++; } } // 防御没全破,没有本体伤害 if (break_cnt < M) { cout << 0 << endl; } else { // 剩下攻击全部打本体 int sum = 0; for (int k = j; k < N; ++k) sum += atk[k]; cout << sum << endl; } return 0; }