20分求助
查看原帖
20分求助
704275
无名之雾楼主2023/7/15 16:05

求大佬帮助为什么只有20分啊。注释部分是第一遍的暴力。

#include<bits/stdc++.h>
using namespace std;
int n,e,d;
/*void qp(int cnt,int n){
	for(int i=1;i<=sqrt(n);i++){
		if(n%i==0){
			int k=n/i;
			k+=i;
			if(k==cnt){cout<<i<<" "<<n/i<<"\n";return ;}
		}
	}
	cout<<"NO"<<"\n";
}*/
void qp(int cnt,int n){
    int o=sqrt((cnt*cnt)-(4*n));
    int p=(cnt-o)/2,q=(cnt+o)/2;
    if(p*q==n&&e*d==(p-1)*(q-1)+1&&p&&q){cout<<min(p,q)<<" "<<max(q,p)<<"\n";return;}
    else{cout<<"NO"<<"\n";return;}
}
int main(){
	int k;
	cin>>k;
	while(k--){
		cin>>n>>e>>d;
		int cnt=n-(e*d)+2;
		qp(cnt,n);
	}
    return 0;
}

2023/7/15 16:05
加载中...