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;
}