玄关求解
查看原帖
玄关求解
1069088
lxy_ayaka楼主2024/4/18 19:43
#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

????????????????????????????????????????????????????气死我了

2024/4/18 19:43
加载中...