目录

problems
名称解密
题目编号2022 CSP-J T2
题目链接luogu.com.cn/…
来源CCF
算法分类二分答案, 数学
难易程度一般般

解密

想法

可以通过公式算出和,需要知道对于两数相加的和一定的情况下,两数越相近积越大。所以积满足单调性。

代码实现

#include<cstdio>
 
int main() {
    int k=1;
    scanf("%d", &k);
    while(k--) {
        long long int n, d, e;
        scanf("%lld %lld %lld", &n, &d, &e);
        long long int s = n - e*d + 2;
        long long int l = 1, r = s / 2, mid;
        while(l < r) {
            mid = (l + r + 1) / 2;
            if(mid * (s - mid) <= n)
                l = mid;
            else
                r = mid - 1;
        }
        if((l * (s-l)) == n) 
            printf("%lld %lld\n", l, s-l);
        else  
            printf("NO\n");
    }
    return 0;
}