| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 436473 | 顾鑫辰 | 【C6-7】母舰 | C++ | 解答错误 | 10 | 28 MS | 1052 KB | 961 | 2026-04-15 20:15:27 |
#include <iostream> #include <algorithm> using namespace std; const int MAX = 100005; int def[MAX]; int atk[MAX]; int main() { ios::sync_with_stdio(false); cin.tie(0); int M, N; cin >> M >> N; // 读防御 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 d = M - 1; int a = N - 1; int cnt = 0; while (d >= 0 && a >= 0) { if (atk[a] > def[d]) { cnt++; a--; d--; } else { a--; } } // 计算剩余所有攻击的和 long long ans = 0; if (cnt == M) { for (int i = 0; i <= a; i++) { ans += atk[i]; } } cout << ans << endl; return 0; }