记录编号 597559 评测结果 AAAAAAAAAA
题目名称 棋局 最终得分 100
用户昵称 Gravatar黄天宇 是否通过 通过
代码语言 C++ 运行时间 0.566 s
提交时间 2024-11-29 19:21:01 内存使用 3.81 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m;
const int MAXN=2e5+5;
long long a[MAXN];
long long s[MAXN];
bool check(long long num,long long k){
	long long x=lower_bound(a+1,a+1+n,num)-a;
	long long sum=s[n]-s[x-1]-num*(n-x+1);
	if(sum>(k-1)*(m-num)){
		return 0;
	}else
	return 1;
}
int main(){
	freopen("qiju.in","r",stdin);
	freopen("qiju.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++){
		s[i]=s[i-1]+a[i];
	}
	for(int i=1;i<=n;i++){
		long long l=0,r=m;
		long long mid;
		while(l<r){
			mid=(l+r)/2;
			if(check(mid,i)){
				r=mid;
			}else l=mid+1;
		}
		cout<<l<<" ";
	}
	return 0;
}