[CSP-J2022] 解密二分
查看原帖
[CSP-J2022] 解密二分
707158
khuang楼主2022/10/29 20:19
//
//  历年初赛普及组真题
//  main.cpp
//  P8814 [CSP-J2022] 解密
//
//  Created by 黄观雁 on 2022/10/29.
//


#include <iostream>
#include <cmath>
using namespace std;

typedef long long LL;
LL k,e,d,m,n;
bool f;
/*
 m = n-e*d+2
 推理可行
 p+q=m
 p*q=n
 */

int main()
{
    cin >> k;
    LL m;
    
    while(k--){
        cin>>n>>d>>e;
        m = n-e*d+2;
        f = false;
        
        LL l=1,r=m-1,p,q;
        while(l<=r){
            p = (l+r)/2;
            q = m-p;
            if(p*q==n){
                cout<<p<<" "<<q<<endl;
                f = true;
                break;
            }else if(p*q<n){
                l = p+1;
            }else{
                r = p-1;
            }
        }
        
        if(!f){
            cout<<"NO"<<endl;
        }
    }
}

2022/10/29 20:19
加载中...