0分求助,样例全过(二分)
查看原帖
0分求助,样例全过(二分)
244051
hsk花生壳楼主2023/6/26 22:00
#include <iostream>
using namespace std;
int k;
long long delta,n;
long long func(long long l,long long r)
{
    long long mid = (l+r)/2;
    long long p = mid;
    long long q = delta - p;
    long long checker = p*q;
    
    //printf("l = %lld, r = %lld ,q = %lld, pq = %lld\n",l,r,q,checker);
    if(checker > n)
    {
        if(mid == r) return 0;
        return func(l,mid);
    }
    if(checker == n) return mid;
    if(checker < n)
    {
        if(mid == l) return 0;
        return func(mid,r);
    }
}
int main()
{
    cin>>k;
    while(k--)
    {
        long long e,d,p,q;
        cin>>n>>e>>d;
        delta = n-e*d+2;
        //cout<<"delta = "<<delta<<endl;
        p = func(1,delta/2);
        if(p > 0)
        {
            q = delta - p;
            cout<<p<<" "<<q<<endl;
        }else cout<<"NO"<<endl;
    }
    return 0;
}
2023/6/26 22:00
加载中...