求助
查看原帖
求助
658497
letianJOE楼主2022/11/5 13:59

为什么输出很多都是NO呢

是枚举范围的问题吗?

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

卡了好久了

2022/11/5 13:59
加载中...