警钟长鸣
查看原帖
警钟长鸣
570399
Ilovechemistry_AFO楼主2022/10/29 21:21
#include<iostream>
#include<cmath>
using namespace std;
typedef long long ll;
ll k,n,m,e,d,p,q;

inline ll read(){
    int x=0,f=1;
	char c=getchar();
	while(c<'0' || c>'9'){if(c=='-') f=-1;c=getchar();}
	while(c>='0' && c<='9') {x=x*10+c-48;c=getchar();} 
	return x;
}

int main()
{
    //freopen("decode.in","r",stdin);
    //freopen("decode.out","w",stdout);
    k=read();
    while(k--)
    {
        n=read(),e=read(),d=read();
        m=n-e*d+2;
        if(m*m-4*n<0){
            puts("NO");
            continue;
        }
        else{
            ll sqr=sqrt(m*m-4*n);
            if(sqr*sqr==m*m-4*n){
                if((m+sqr)%2==0)q=(m+sqr)/2;
                else {puts("NO");continue;}
                p=(m-sqr)/2;
                if(p<0||q<0){
                    puts("NO");
                    continue;
                }
                printf("%lld %lld\n",p,q);
            }
            else puts("NO");
        }
        //m=n=e=d=p=q=0;
    }
    return 0;
}

以上为错误代码 错误原因:快读里x设的int 谨以此警示后人

2022/10/29 21:21
加载中...