CE无语
查看原帖
CE无语
943493
LookatSea楼主2024/4/21 12:00

本地0错0警告,到了正在蒸蒸日上的洛谷就CE

#include <bits/stdc++.h>
using namespace std;
int __gcd_error(int x, int y)
{
    while(y^=x^=y^=x%=y);
    return x;
}
double a1,a2,b1,b2;
int ZXK,ZXB,x,x1,x2,y1=100,y2=100;
double k,b;

int main()
{
	cin>>a1>>b1>>a2>>b2;
	k=(b2-b1)/(a2-a1);	
	ZXK=(int)k;	
	b=b1-k*a1;	
	ZXB=(int)b;	
	cout<<"y=";	
	if(ZXK==k && ZXB==b) {	 
		if(ZXB==0)	
			cout<<ZXK<<"x";
		else {
			if(ZXB>0)	
				printf("%dx+%d",ZXK,ZXB);
			if(ZXB<0)	
				printf("%dx%d",ZXK,ZXB);
		}
	}
	else if(ZXK==k && ZXB!=b) { 
		int flag=0;	
		ZXB=int(b*y1);
		x=__gcd_error(ZXB,int(y1));
		ZXB/=x;
		y1/=x;
		if(flag)	
			ZXB=-ZXB,y1=-y1;
		if(ZXB>0)	
			printf("%dx+%d/%d",ZXK,ZXB,y1);
		if(ZXB<0)
			printf("%dx%d/%d",ZXK,ZXB,y1);
	}
	else if(ZXK!=k && ZXB!=b) {	
		int fg1=0,fg2=0;
		if(k<0)
			fg1=1;
		if(b<0)
			fg2=1;
		ZXK=int(k*y1);
		x1=__gcd_error(ZXK,int(y1));
		ZXK/=x1;y1/=x1;
		ZXB=int(b*y2);
		x2=__gcd_error(ZXB,int(y2));	
		ZXB/=x2;y2/=x2;
		if(fg1)
			ZXK=-ZXK,y1=-y1;
		if(fg2)	
			ZXB=-ZXB,y2=-y2;
		if(ZXB>0)	
			printf("%d/%d*x+%d/%d",ZXK,y1,ZXB,y2);	
		if(ZXB<0)	
			printf("%d/%d*x%d/%d",ZXK,y1,ZXB,y2);
	}
	else if(ZXK!=k && ZXB==b) {
		int flag=0;
		if(k<0)
			flag=1;
		ZXK=int(k*y1);
		x=__gcd_error(ZXK,int(y1));
		ZXK/=x;y1/=x;
		if(flag)	
			ZXK=-ZXK,y1=-y1;
		if(ZXB>0)	
			printf("%d/%d*x+%d",ZXK,y1,ZXB);
		if(ZXB<0)
			printf("%d/%d*x%d",ZXK,y1,ZXB);
	}
	return 0;
}

2024/4/21 12:00
加载中...