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;
        }
    }
  • 相关阅读:
    QT 手式编译步骤
    Linux QT 连接 Sqlite数据库
    JDK_1.8的Windows和Linux环境下的下载与安装
    聚焦BPM弹窗
    SQL查重去重
    sql函数使用
    SQL游标
    转载:《TypeScript 中文入门教程》 2、枚举
    《TypeScript 中文入门教程》 1、基础数据类型
    转载:《TypeScript 中文入门教程》
  • 原文地址:https://www.cnblogs.com/dacc123/p/8228716.html
Copyright © 2011-2022 走看看