官方数据0分,洛谷数据70求助
查看原帖
官方数据0分,洛谷数据70求助
679961
zhang_kevin楼主2023/9/29 09:48
#include<bits/stdc++.h>
using namespace std;
inline void Solve(){
	long long n, d, e, m, p, q;
	cin >> n >> d >> e;
	m = n - e*d + 2;
	/*
	p * q = n;
	p + q = m;
	*/
	long long f = m * m - 4 * n;
	if(f < 0){
		cout << "NO" << endl;
	}else if(f == 0){
		/*
		p + q = n
		p - q = 0;
		*/
		p = n / 2, q = n / 2;
		if(p * q == n && p + q == m && p > 0 && q > 0){
			cout << min(p, q) << " " << max(p, q) << endl;
		}else{
			cout << "NO" << endl;
		}
	}else{
		long long k1 = sqrtl(f);
		long long k2 = -k1;
		long long p1, p2, q1, q2;
		p1 = (m+k1) / 2, q1 = (m-k1) / 2;
		p2 = (m+k2) / 2, q2 = (m-k2) / 2;
		if(p1 * q1 == n && p1 + q1 == m && p1 > 0 && q1 > 0){
			cout << min(p1, q1) << " " << max(p1, q1) << endl;
		}else if(p2 * q2 == n && p2 + q2 == m && p2 > 0 && q2 > 0){
			cout << min(p2, q2) << " " << max(p2, q2) << endl;
		}else{
			cout << "NO" << endl;
		}
	}
	return;
}
int main(){
	int T;
	cin >> T;
	while(T--){
		Solve();
	} 
	return 0;
}

为啥官方数据和洛谷数据差这么多

2023/9/29 09:48
加载中...