ABC365C求助
  • 板块学术版
  • 楼主wjbbssb250
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/10/3 17:58
  • 上次更新2024/10/3 20:18:44
查看原帖
ABC365C求助
778527
wjbbssb250楼主2024/10/3 17:58

[ABC365C] Transportation Expenses求助

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e5;
int n,m,a[N + 5],cnt[N + 5],ans;
signed main(){
	//freopen("expenses.in","r",stdin);
	//freopen("expenses.out","w",stdout);
	cin >> n >> m;
	for(int i = 1;i <= n;i++){
		cin >> a[i];
	}
	sort(a + 1,a + 1 + n);
	for(int i = 1;i <= n;i++){
		cnt[i] = cnt[i - 1] + a[i];
	}
	if(cnt[n] <= m){
		cout << "infinite" << endl;
		return 0;
	}
	for(int i = 1;i <= n;i++){
		int x = floor((m - cnt[i]) * 1.0 / (n - i));
		ans = max(ans,x);
	}
	cout << ans << endl;
	fclose(stdin);
	fclose(stdout);
	return 0;
}

这一题我推出不等式 cnt[i]+(ni)x<=mcnt[i]+(n-i)*x<=m,cnt[i]cnt[i] 是前缀和,xx 是补贴限额,然后找出最大值,在atcoder上提交错误了一个点,求大佬解答。

2024/10/3 17:58
加载中...