#include<bits/stdc++.h>
using namespace std;
int n,m,a[1000001],l,h,mid,ans;
bool cheak(int xx){
int mm;
for(int i=1;i<=n;i++){
if(a[i]-xx>=0){
mm+=(a[i]-xx);
}
if(mm>=m) return 1;
}
return 0;
}
int main(){
//freopen("P1873.txt","r",stdin);
cin >> n >> m;
for(int i=1;i<=n;i++){
cin >> a[i];
}
h=400000;
l=1;
while(l<=h){
mid=(l+h)/2;
if(cheak(mid)){
l=mid+1;
ans=mid;
}else{
h=mid-1;
}
// cout << ans << endl;
}
cout << "============" << endl;
cout << ans <<endl;
}
就是说想问一下,在cout ans 的上一句cout ,加上这句就是对的;不加它把他注释掉就是错的。。。。。。
加了之后的实例二数据输出为:47
把循环内cout ans 注释掉输出为:36
????????????????????????????????????????????????????气死我了