求助
查看原帖
求助
626785
lxc_awa楼主2023/9/30 20:58

为啥这样写样例有些数据死循环

#include<bits/stdc++.h>
using namespace std;
int k;
int n[500005],d[500005],e[500005];
int main(){
	cin>>k;
	for(int i=1;i<=k;i++){
		cin>>n[i]>>d[i]>>e[i];
	}
	for(int i=1;i<=k;i++){
		int m=(n[i]-e[i]*d[i]+2);
		int l=1,r=m/2;
		bool flag=true;
		while(l<r){
			int mid=l+r/2;
			if(mid*(m-mid)>n[i]){
				r=mid-1;
			}
			if(mid*(m-mid)<n[i]){
				l=mid+1;
			}
			if(mid*(m-mid)==n[i]){
				flag=false;
				cout<<mid<<' '<<(m-mid)<<endl;
				break;
			}
		}
		if(flag){
			cout<<"NO"<<endl;
		}
	}
	return 0;
}

2023/9/30 20:58
加载中...