题解 CF21B 【Intersection】

写在前面

这种题不应该一遍\(A\)么?youl.pngyoul.png

Idea

这是一道数学题。

答案会有0(平行),1(相交),-1(重合),三种

代码中注释youl.png

Code

//可能是写法问题,跑的很慢;或许是我自带常数极大(雾?
namespace Sol{
	int a1,b1,c1,a2,b2,c2;
	inline int check(){
	    if((a1==0&&b1==0&&c1!=0)||(a2==0&&b2==0&&c2!=0)) return 0;
	    int f=1;//只有0个(平行),1个(相交),-1(无限);
	    if((a2==0&&b2==0)||(a1==0&&b1==0)) return -1;//任意一点;
	    else if(a1!=0&&b1!=0){//有斜率;
	        if(a2!=0&&b2!=0){
	            if(a1*b2==a2*b1){//斜率相同
	                if(c1*b2==c2*b1) return -1;//过同一点说明重合;
	                else f=0;//斜率相同不过同一点说明平行;
	            }
	        }
	    }
	    else{
	        if(a1==0&&b1!=0){//一条横线;
	            if(a2==0&&b2!=0){
	                if(c2*b1==c1*b2) f=-1;//过同一点;
	                else f=0;
	            }
	        }
	        else{//一条竖线;
	            if(a2!=0&&b2==0){
	                if(c2*a1==c1*a2) f=-1;//过同一点;
	                else f=0;
	            }
	        }
	    }
	    return f;
	}
	inline int Main(){
		a1=read(); b1=read(); c1=read(); 
		a2=read(); b2=read(); c2=read();
		int f=check();
        printf("%d",f);
		return 0;
	} 
}

\[\mathcal The \quad End \]

\[\text{我们都是小怪兽,有一天会被正义的奥特曼杀死。-《龙族》上杉绘梨衣(原谅我的臭屁~~)} \]

posted @ 2019-10-27 21:25  云山乱  阅读(170)  评论(0编辑  收藏  举报