Code Force 21B Intersection
B. Intersection
time limit per test1 second
memory limit per test256 megabytes
inputstandard input
outputstandard output
You are given two set of points. The first set is determined by the equation A1x + B1y + C1 = 0, and the second one is determined by the equation A2x + B2y + C2 = 0.
Write the program which finds the number of points in the intersection of two given sets.
Input
The first line of the input contains three integer numbers A1, B1, C1 separated by space. The second line contains three integer numbers A2, B2, C2 separated by space. All the numbers are between -100 and 100, inclusive.
Output
Print the number of points in the intersection or -1 if there are infinite number of points.
Examples
input
1 1 0
2 2 0
output
-1
input
1 1 0
2 -2 0
output
1
模拟
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
#include <math.h>
#include <stdio.h>
using namespace std;
int a1,b1,c1;
int a2,b2,c2;
int main()
{
scanf("%d%d%d%d%d%d",&a1,&b1,&c1,&a2,&b2,&c2);
if((a1==0&&b1==0&&c1!=0)||(a2==0&&b2==0&&c2!=0))
{cout<<0<<endl;return 0;}
if((a1==0&&b1==0&&c1==0)||(a2==0&&b2==0&&c2==0))
{cout<<-1<<endl;return 0;}
if((a1==0&&a2!=0)||(a1!=0&&a2==0))
{cout<<1<<endl;return 0;}
if(a1==0&&a2==0)
{
double k1=1.0*c1/b1;
double k2=1.0*c2/b2;
if(k1==k2)
{cout<<-1<<endl;return 0;}
else
{cout<<0<<endl;return 0;}
}
if((b1==0&&b2!=0)||(b1!=0&&b2==0))
{cout<<1<<endl;return 0;}
if(b1==0&&b2==0)
{
double k1=1.0*c1/a1;
double k2=1.0*c2/a2;
if(k1==k2)
{cout<<-1<<endl;return 0;}
else
{cout<<0<<endl;return 0;}
}
if((b1==0&&a2==0)||(b2==0&&a1==0))
{cout<<1<<endl;return 0;}
double k1=1.0*a1/b1;
double k2=1.0*a2/b2;
if(k1==k2)
{
if((c1==0&&c2!=0)||(c1!=0&&c2==0))
{cout<<0<<endl;return 0;}
if(c1==0&&c2==0)
{
double kk1=1.0*a1/a2;
double kk2=1.0*b1/b2;
if(kk1==kk2)
{cout<<-1<<endl;return 0;}
else
{cout<<0<<endl;return 0;}
}
else
{
double kk1=1.0*a1/a2;
double kk2=1.0*b1/b2;
double kk3=1.0*c1/c2;
if(kk1==kk2&&kk2==kk3)
{cout<<-1<<endl;return 0;}
else
{cout<<0<<endl;return 0;}
}
}
else
{
cout<<1<<endl;return 0;
}
}