想用前缀和,但23分,求助
查看原帖
想用前缀和,但23分,求助
1122391
MMatthew楼主2024/8/15 21:24

代码如下:

#include<bits/stdc++.h>
using namespace std;
int n, s[1000005];
bool f[1000005];
struct Fish {
	int a, idx;
}fish[1000005];
static bool cmp(Fish b, Fish c) {
	return b.a < c.a;
}
bool judge[1000005];
int main() {
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> fish[i].a;
		fish[i].idx = i;
	}
	sort(fish + 1, fish + n + 1, cmp);
	int cnt = 0;
	for (int i = 1; i <= n; i++) {
		if (fish[i].a > fish[i - 1].a) {
			s[i] = fish[i].a + fish[i - 1].a;
			s[i] += cnt * fish[i].a;
			cnt = 0;
		}
		else {
			cnt++;
			s[i] = s[i - 1];
		}
	}
	for (int i = 1; i <= n; i++) {
		if (s[i] > fish[n].a) {
			judge[fish[i].idx] = true;
		}
		else {
			judge[fish[i].idx] = false;
		}
	}
	for (int i = 1; i <= n; i++) {
		if (judge[i])cout << "T";
		else cout << "N";
	}
	return 0;
}
2024/8/15 21:24
加载中...