提交时间:2026-04-15 20:00:29

运行 ID: 436463

#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); sort(atk, atk + N); int l = 0, r = N - 1; int d = M - 1; int sum = 0; while (d >= 0 && l <= r) { if (atk[r] > def[d]) { // 大攻击破大防御 r--; d--; } else { // 小攻击送死 l++; } } // 防御全破,剩下攻击全是伤害 if (d < 0) { for (int i = l; i <= r; i++) sum += atk[i]; } cout << sum << endl; return 0; }