WA了9个点,求助
查看原帖
WA了9个点,求助
555513
yangtinghao楼主2022/10/31 22:15

只有10分,救救孩子吧(思路:二分)

#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;
int k,n,e,d;
signed main()
{
	cin>>k;
	while (k--)
	{
		cin>>n>>e>>d;
		bool f=0;
		int m=n-e*d+2;
		int l=1,r=m/2;
		while (l<r)
		{
			int mid=l+r>>1;
			if (mid*(m-mid)<n) l=mid+1;    //和一定,差小积大
			if (mid*(m-mid)>n) r=mid-1;
			if (mid*(m-mid)==n) {cout<<mid<<' '<<m-mid<<endl;f=1;break;}
		}
		if (l*(m-l)==n) {cout<<l<<' '<<m-l<<endl;f=1;}
		else if (f==0) cout<<"NO"<<endl;
	}
	return 0;
}
2022/10/31 22:15
加载中...