在此代码下,只获得了40分,只对了 #1 #3 #7 #8
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
double x[4];
int main()
{
// freopen("uqe.in","r",stdin);
// freopen("uqe.out","w",stdout);
int T,M,a,b,c;
scanf("%d %d",&T,&M);
for(int ypy=1;ypy<=T;ypy++)
{
scanf("%d %d %d",&a,&b,&c);
if (b*b-4*a*c<0)
{
printf("NO\n");
continue;
}
if (b==0&&c==0)
{
printf("0\n");
continue;
}
x[1]=(-b+sqrt(b*b-4*a*c))/(2*a),x[2]=(-b-sqrt(b*b-4*a*c))/(2*a);
if (floor(x[1])==x[1]&&floor(x[2])==x[2])
{
printf("%.0lf\n",max(x[1],x[2]));
continue;
}
}
return 0;
}
然而注释掉第20~24行,只获得了20分,只对了 #7 #8
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
double x[4];
int main()
{
// freopen("uqe.in","r",stdin);
// freopen("uqe.out","w",stdout);
int T,M,a,b,c;
scanf("%d %d",&T,&M);
for(int ypy=1;ypy<=T;ypy++)
{
scanf("%d %d %d",&a,&b,&c);
if (b*b-4*a*c<0)
{
printf("NO\n");
continue;
}
// if (b==0&&c==0)
// {
// printf("0\n");
// continue;
// }
x[1]=(-b+sqrt(b*b-4*a*c))/(2*a),x[2]=(-b-sqrt(b*b-4*a*c))/(2*a);
if (floor(x[1])==x[1]&&floor(x[2])==x[2])
{
printf("%.0lf\n",max(x[1],x[2]));
continue;
}
}
return 0;
}
这是否说明在#3的数据下,b==0并且c也==0。