AC不过样例
查看原帖
AC不过样例
1367086
zzhhyy1234楼主2024/8/10 13:27

RT

AC不过样例,一到考试就寄

#include<bits/stdc++.h>
using namespace std;

int main()
{
	long long xa,ya,xb,yb,b,k;
	cin>>xa>>ya>>xb>>yb;
	//y1=kx1+b,y2=kx2+b,y1-y2=k(x1-x2),k=(y1-y2)/(x1-x2)
	cout<<"y=";
	if((ya-yb)%(xa-xb)==0) cout<<(ya-yb)/(xa-xb);
	else{
		if((ya-yb)/(xa-xb)>0) cout<<abs((ya-yb)/abs(__gcd(ya-yb,xa-xb)))<<'/'<<abs((xa-xb)/abs(__gcd(ya-yb,xa-xb)))<<'*';
		else cout<<-abs((ya-yb)/abs(__gcd(ya-yb,xa-xb)))<<'/'<<abs((xa-xb)/abs(__gcd(ya-yb,xa-xb)))<<'*';
	}
	cout<<'x';
	if(yb*xa==ya*xb) return 0;
	if((yb*xa-ya*xb)%(xa-xb)==0){
		if((yb*xa-ya*xb)/(xa-xb)>0) cout<<'+'<<(yb*xa-ya*xb)/(xa-xb);
		else cout<<(yb*xa-ya*xb)/(xa-xb);
	}
	else{
		if((yb*xa-ya*xb)/(xa-xb)>0) cout<<abs((yb*xa-ya*xb)/abs(__gcd(yb*xa-ya*xb,xa-xb)))<<'/'<<abs((xa-xb)/abs(__gcd(yb*xa-ya*xb,xa-xb)));
		else cout<<-abs((yb*xa-ya*xb)/abs(__gcd(yb*xa-ya*xb,xa-xb)))<<'/'<<abs((xa-xb)/abs(__gcd(yb*xa-ya*xb,xa-xb)));
	}
	return 0;
}
2024/8/10 13:27
加载中...