记录编号 |
603661 |
评测结果 |
WTWTWWWWTT |
题目名称 |
[CSP 2023J]一元二次方程 |
最终得分 |
0 |
用户昵称 |
会放牛的鸵鸟 |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
8.112 s |
提交时间 |
2025-07-20 19:58:06 |
内存使用 |
3.56 MiB |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int god(int a,int b) {
if(b==0) return a;
else return god(b,a%b);
}
int main() {
freopen("uqe.in","r",stdin);
freopen("uqe.out","w",stdout);
int T, M;
cin >> T >> M;
while (T--) {
int a, b, c;
cin >> a >> b >> c;
int d=b*b-4*a*c;
if(d<0)
cout<<"NO";
else
{int p,q;
//★★☆
if(a>0)
{
a=-a;
b=-b;
c=-c;
}
int k=1,t;
for(int y=2;y*y<=d;y++)
while(d%(y*y)==0)
{ k*=y;
d/=(y*y);
}
if(d==0||d==1)
{
t=abs(god(2*a,-b+k*d));
cout<<(-b+k*d)/t;
if(2*a/t != 1)
cout<<"/"<<2*a/t;
cout<<endl;
continue;
}
g:
t=abs(god(-b,2*a));
if(-b/t==0)
goto g;
cout<<-b/t;
if(2*a/t != 1)
cout<<"/"<<2*a/t;
cout<<"+";
t=abs(god(k,2*a));
if(k/t != 1)
cout<<k/t<<"*";
cout<<"sqrt("<<d<<")";
if(2*a/t != 1)
cout<<"/"<<2*a/t;
cout<<endl;
}
}
return 0;
}