zoukankan      html  css  js  c++  java
  • 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;
        }
    }
  • 相关阅读:
    适合程序员的两样工具-续集
    JavaScript之面向对象1
    人类简史笔记摘录
    做正确的事
    个人高效率任务列表
    视频技术基础
    了解更多梭罗与瓦尔登湖
    禅与摩托车维修的艺术
    人工智能发展及算法
    互联网没能降低房价,人工智能就可以不?
  • 原文地址:https://www.cnblogs.com/dacc123/p/8228716.html
Copyright © 2011-2022 走看看