专栏文章

站外题求解

学习·文化课参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mior3b0y
此快照首次捕获于
2025/12/02 23:46
3 个月前
此快照最后确认于
2025/12/02 23:46
3 个月前
查看原文

有没有哪个大佬可以看一下我这里哪错了

CPP
#include<bits/stdc++.h>
using namespace std;
bool cmp(int x, int y) {
	return x > y;
}
long long T, n, m[200010];
int main() {
	cin >> T;
	for (int i = 0; i < T; i++) {
		cin >> n;
		for (int j = 0; j < n; j++) {
			cin >> m[j];
		}
		sort(m, m + n, cmp);
		int a = 0, b = 0;
		while (true) {
			if (n == 0) {
				break;
			}
			for (int j = 0; j < n; j++) {
				if (m[j] % 2 != 0) {
					m[j] = -10000000000;
					sort(m, m + n, cmp);
					n--;
					break;
				}
				if (m[j] % 2 == 0) {
					a += m[j];
					m[j] = -10000000000;
					n--;
					sort(m, m + n, cmp);
					break;
				}
			}
			for (int j = 0; j < n; j++) {
				if (m[j] % 2 == 0) {
					m[j] = -10000000000;
					sort(m, m + n, cmp);
					n--;
					break;
				}
				if (m[j] % 2 != 0) {
					b += m[j];
					m[j] = -10000000000;
					n--;
					sort(m, m + n, cmp);
					break;
				}
			}
		}
		if (a > b) {
			cout << "A\n";
		} else if (a == b) {
			cout << "C\n";
		} else {
			cout << "B\n";
		}
	}
	return 0;
}

谢谢!这对我很重要!

评论

0 条评论,欢迎与作者交流。

正在加载评论...