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;
        }
    }
  • 相关阅读:
    小公司的10k前端工程师应该会什么?
    webService和Restful
    码农如何主动学习?
    20个Web前端开发工程师必看的国外网站
    网站主题和内容的三个类型
    HTTP慢速攻击
    Linux等待队列原理与实现
    签名你的每个 Git Commit
    浅谈 Linux 下常用 Socket 选项设置
    API接口设计,需要注意这4点
  • 原文地址:https://www.cnblogs.com/dacc123/p/8228716.html
Copyright © 2011-2022 走看看