ZR noip Day 1

多少年前的老古董,当时没好好打,anyway,现在拿来 老歌新编 一下。


T1

不会,废了!

先将所有的数字排序。枚举平均数的位置,假设 \(a_i\) 是第⼀个能被选的数字。我们需要选尽量多大于等于 \(a_i\) 的数字,满⾜平均数小于 \(a_i\),于是只要考虑尽量多的选取⼀个前缀即可。

上面是题解

没看懂

抄代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1145141;
ll n, a[N], ans, sum, qwq;
int main(){
	cin >> n;
	for (ll i = 1; i <= n; i++) cin >> a[i];
	sort(a + 1,a + n + 1);
	for (ll i = 1; i <= n; i++)
		sum += a[i], 
		qwq = i - (upper_bound(a + 1,a + i + 1,sum / i) - a - 1), ans = max(ans,qwq);
	cout << ans << endl;
	return 0;
}
posted @ 2024-10-28 22:42  Razer_Sun  阅读(22)  评论(0)    收藏  举报