提交时间:2026-04-14 16:53:32

运行 ID: 436417

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int m, n; cin >> m >> n; vector<int> def(m); vector<int> atk(n); for (int i = 0; i < m; i++) cin >> def[i]; for (int i = 0; i < n; i++) cin >> atk[i]; // 防御从小到大 sort(def.begin(), def.end()); // 攻击从大到小 sort(atk.rbegin(), atk.rend()); 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++; } } // 剩下的所有攻击都算伤害 long long damage = 0; while (j < n) { damage += atk[j]; j++; } cout << damage << endl; return 0; }