-JT3 求助 玄关
  • 板块学术版
  • 楼主huajunli
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/2 20:55
  • 上次更新2023/11/2 22:55:02
查看原帖
-JT3 求助 玄关
1066109
huajunli楼主2023/11/2 20:55

本人的T3卡了2.5h都没过 一直都是RE 求调QAQ 码风很恶心 但是还是求帮助awa

#include<bits/stdc++.h>
using namespace std;	
int main(){
	double t,m;
	cin>>t>>m;
	while(t--){
		int a,b,c;
		cin>>a>>b>>c;
		double a1,b1,c1;
		a1=a;
		b1=b;
		c1=c;
		if(b*b-4*a*c<0){
			cout<<"NO\n";
			continue;
		} 
		int d=b*b-4*a*c;
//		cout<<d<<endl;
		if(d==0){
			if(b%(2*a)==0){
				cout<<-2*a/b<<endl;
			}
			else{
				a*=2,b*=-1;
				if(a<0){
					a*=-1;
					b*=-1;
				}
				double k=abs(__gcd(a,b));
				a/=k;
				b/=k;
				if(a==1)cout<<b<<endl;
				else cout<<b<<'/'<<a<<endl;
			}
		} 
		else{
			int qwe=sqrt(d);
			if(qwe*qwe==d){
//				cout<<"asdf";
				a*=2;
				b*=-1;
				b+=qwe;
				if(a<0){
					a*=-1;
					b*=-1;
				}
				double k=abs(__gcd(a,b));
				a/=k;
				b/=k;
				if(a==1)cout<<b<<endl; 
				else cout<<b<<'/'<<a<<endl;
				
			}
			else if(b==0){
				
				int er=1;
				for(double i=100;i>=1;i--){
					int wer=i*i;
					if(d%wer==0){
						er*=i;
						d/=wer;
					}
				}
				a=a1;
				a*=2;
				if(a<0){
					er*=-1;
					a*=-1;
				}
				double k=abs(__gcd(er,a));
				er/=k;
				a/=k;
				if(er!=1){
					cout<<er<<'*';
				};
				if(a==1)cout<<"sqrt("<<d<<")"<<endl;
				else cout<<"sqrt("<<d<<")/"<<a<<endl;
			}
			else{
				a*=2;
				b*=-1;
//				cout<<a<<' '<<b;
				if(a<0){
					a*=-1;
					b*=-1;
				}
				int k=abs(__gcd(a,b));
				a/=k;
				b/=k;
				if(a==1)cout<<b<<'+';
				else cout<<b<<'/'<<a<<'+';
				int er=1;
				for(int i=100;i>=1;i--){
					if(d%(i*i)==0){
						er*=i;
						d/=i;
						d/=i;
					}
				}
				a=a1;
				a*=2;
				if(a<0){
					er*=-1;
					a*=-1;
				}
				k=abs(__gcd(er,a));
				er/=k;
				a/=k;
				if(er!=1){
					cout<<er<<'*';
				}
				if(a==1)cout<<"sqrt("<<d<<")"<<endl;
				else cout<<"sqrt("<<d<<")/"<<a<<endl;
			}
		}
	} 
	return 0;
}
2023/11/2 20:55
加载中...