Code Force 21B Intersection

8012 단어
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;
    }
}

좋은 웹페이지 즐겨찾기