| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 436457 | 顾鑫辰 | 【C6-7】母舰 | C++ | 运行出错 | 0 | 2 MS | 260 KB | 1664 | 2026-04-15 19:56:33 |
#include <iostream> using namespace std; int main() { int M, N; // 输入防御系统数量 M,攻击系统数量 N cin >> M >> N; int def[1005]; // 防御系统 int atk[1005]; // 攻击系统 // 输入 M 个防御力 for (int i = 0; i < M; i++) { cin >> def[i]; } // 输入 N 个攻击力 for (int i = 0; i < N; i++) { cin >> atk[i]; } // —————— 手写冒泡排序(从小到大)—————— // 排序防御系统 for (int i = 0; i < M - 1; i++) { for (int j = 0; j < M - i - 1; j++) { if (def[j] > def[j + 1]) { int t = def[j]; def[j] = def[j + 1]; def[j + 1] = t; } } } // 排序攻击系统 for (int i = 0; i < N - 1; i++) { for (int j = 0; j < N - i - 1; j++) { if (atk[j] > atk[j + 1]) { int t = atk[j]; atk[j] = atk[j + 1]; atk[j + 1] = t; } } } // —————— 贪心匹配:破防 —————— int i = 0; // 防御指针 int j = 0; // 攻击指针 while (i < M && j < N) { if (atk[j] > def[i]) { // 能破防,一起消耗 i++; j++; } else { // 破不了防,攻击废掉 j++; } } // —————— 剩余攻击 = 总伤害 —————— int ans = 0; for (int k = j; k < N; k++) { ans += atk[k]; } cout << ans << endl; return 0; }