逆天锣鼓
查看原帖
逆天锣鼓
593499
LateSight楼主2024/1/25 09:58

我代码本地跑对了,锣鼓错了

代码:

#include<bits/stdc++.h> 
using namespace std;
long long sum,n,a[100010],k,cnt;
bool check(int x){
	sum=0;
	if(x==0)return 1;
	for(int i=n-1;i>=0;i--){
		cnt=a[i]/x;
		sum+=cnt; 
	}
	if(sum>=k)
		return 1;
	return 0;
}
int bs(){
	int l=1,r=a[n-1],ans;
	while(l<=r){
		int mid=(l+r)>>1;
		if(check(mid))
			ans=mid,l=mid+1;
		else
			r=mid-1;
	}
	return ans;
}
int main(){
	cin>>n>>k;
	for(int i=0;i<n;i++) 
		cin>>a[i];
	sort(a,a+n);
	cout<<bs();
}

样例:

16 100000000
179
168
927
4670
5891
7287
10854
20976
48625
17908
111989
1097897
9999998
87
1
7

我本地输出的是0(正确)锣鼓反馈为4?????

2024/1/25 09:58
加载中...