如题,二分写挂了

#include <bits/stdc++.h>
#define ll long long
using namespace std;

ll n, m, e, d, x;

ll Chtholly, Nephren, Ithea;

ll func(ll l, ll r) {
	ll mid = (l + r + 1ll) / 2ll, mid2 = (l + r) / 2ll;
	while (l < r) {
		mid = (l + r + 1ll) / 2ll;
		mid2 = mid - 1;
		if (mid2 * (m - mid2) == n) return mid2;
		mid2 = mid + 1;
		if (mid2 * (m - mid2) == n) return mid2;
		if (mid * (m - mid) == n) return mid;
		else if (mid * (m - mid) < n) l = mid + 1ll;
		else if (mid * (m - mid) > n) r = mid - 1ll;
//		printf("%lld %lld %lld %lld %lld %lld\n",mid,l,r,m-mid,mid*(m-mid),n);
	}
	return -1ll;
}

int main() {
	
// 	freopen ("decode.in", "r", stdin);
// 	freopen ("decode.out", "w", stdout);
	
	int T;
	scanf ("%d", &T);
	while (T--) {
		scanf ("%lld%lld%lld", &n, &e, &d);
		m = n - e * d + 2ll;
		bool flg = false;
//		for (ll i = 1ll; i <= (m / 2ll); ++i) {
//			if (i * (m - i) == n) {
//				printf ("%d %d\n", i, m - i);
//				flg = true;
//				break;
//			}
//		}
		x = func(1ll, m / 2ll);
		if (x == -1ll) printf ("NO\n");
		else printf ("%lld %lld\n", x, m - x);
	}
}
//ORZ ZYS
//ORZ STR
//ORZ FJH
//ORZ HCY
//ORZ CM
//jin mi huo xing wei da shang!!!!!!!!!
//a quick brown fox jumps over the lazy dog.

qwq 谁帮我看下

0 条评论

目前还没有评论...