求助!满江红 不道哪里出问题了
  • 板块灌水区
  • 楼主tianyuchen0408
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/9/30 21:40
  • 上次更新2024/9/30 21:45:56
查看原帖
求助!满江红 不道哪里出问题了
1091163
tianyuchen0408楼主2024/9/30 21:40

下界传送门 代码:

#include <bits/stdc++.h>
using namespace std;
bool ok(long long x){
	long long d = sqrt((long double)x + 0.5);
	if(d * d == x){
		return true;
	}
	return false;
}
int main(){
	int k;
	cin >> k;
	while(k--){
		long long n, d, e;
		cin >> n >> d >> e;
		long long m = n - d * e + 2;
		long long t = m * m - 4 * n;
		if(t < 0 || !ok(k)){
			puts("NO");
			continue;
		}
		bool flag = false;
		long long now = sqrt((long double)t), p, q;
		if((m + now) % 2 == 0){
			q = (m + now) / 2;
			if(n % q == 0){
				p = n / q;
				flag = true;
			}
		}else if(m - now > 0 && (m - now) % 2 == 0){
			q = (m - now) / 2;
			if(n % q == 0){
				p = n / q;
				flag = true;
			}
		}
		if(!flag){
			puts("NO");
			continue;
		}else{
			if(p > q){
				swap(p, q);
				//cout << p << " " << q << endl;
			}
			cout << p << " " << q << endl;
		}
	}
	return 0;
}

到底是哪里出问题了?我写错哪了?(疑问)我太蒻了(T_T),各位大佬教教我,多谢

2024/9/30 21:40
加载中...