10pts求hack
查看原帖
10pts求hack
1180206
Alex866楼主2024/7/23 16:26
#include<bits/stdc++.h>
#define _n puts("")
#define minf(a,b) for(int i=a;i<b;i++)
#define maxf(a,b) for(int i=a;i>b;i--)
#define rt return
#define _m main
#define itn int
#define uns using namespace std
#define _t printf("\n-------------------\nASDasd123!@#_{:=]'LKJlkj098)(*,./<>?\n-------------------\n")
uns;
int t,m,a,b,c,delta,tmp;
string x;
inline itn gcd(itn a,int b){
	while(b^=a^=b^=a%=b);
    return abs(a);
}
int _m(){
	scanf("%d%d",&t,&m);
	for(int i=0;i<t;i++){
		a=b=c=delta=0;
		tmp=1;
		scanf("%d%d%d",&a,&b,&c);
		delta=b*b-4*a*c;
		if(delta<0){
			printf("NO\n");
			continue;
		}
		for(int j=2;j<=delta;j++){
			if(!(delta%(j*j))){
				while(!(delta%(j*j))){
					tmp*=j;
					delta/=j*j;
				}
			}
		}
		if(delta==0){
			if(b%(2*a)==0){
				printf("%d\n",-b/2*a);
			}else{
				printf("%d/%d\n",-b/gcd(b,2*a),2*a/gcd(b,2*a));
			}
		}else if(delta==1){
			if((-b+tmp)%(2*a)==0){
				printf("%d\n",(-b+tmp)/(2*a));
			}else{
				printf("%d/%d\n",(-b+tmp)/gcd(tmp,2*a),2*a/gcd(tmp,2*a));
			}
		}else{
			if(b!=0){
				if(a<0&&-b<0){
					b=-b;
					a=-a;
				}
				if(-b%(2*a)==0){
					printf("%d",-b/(2*a));
				}else{
					printf("%d/%d",-b/abs(__gcd(b,2*a)),2*a/abs(__gcd(b,2*a)));
				}
				printf("+");
			}
			tmp=abs(tmp);
			if(tmp/__gcd(tmp,2*a)==1){
			printf("sqrt(%d)/%d\n",delta,2*a/__gcd(tmp,2*a));
				}else if(2*a/__gcd(tmp,(2*a))==1){
				printf("%d*sqrt(%d)\n",tmp/__gcd(tmp,2*a),delta);
			}else{
				printf("%d*sqrt(%d)/%d\n",tmp/__gcd(tmp,2*a),delta,2*a/__gcd(tmp,2*a));
			}
		}
	}
	rt 0;
}
2024/7/23 16:26
加载中...