列表

详情


NC214400. 共线点

描述

Bobo在平面上画了三条线段 s1,s和 s3。其中,线段 si 的左端点是 (ai , yi),右端点是 (bi , yi)。判断是否能找到三个点 p1,p2 和 p3 使得
 · pi 在线段 si 上;
 · p1,p2,p3 三点共线。


输入描述

输入文件包含多组数据,请处理到文件结束。
每组数据的第一行包含 3 个整数 a1,b1,y1.第二行包含 3 个整数 a2,b2 和 y2. 第三行包含 3 个整数 a3,b3 和 y3.
 · 0 ≤ ai < bi ≤ 109
 · 0 ≤ y1 < y2 < y3 ≤ 109
 · 数据组数不超过 104

输出描述

对于每组数据,如果存在三点共线,则输出 Yes,否则输出 No 。

示例1

输入:

0 1 0
0 1 1
0 1 2
0 1 0
1 2 1
0 1 2
0 1 0
2 3 1
0 1 2

输出:

Yes
Yes
No

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 32ms, 内存消耗: 440K, 提交时间: 2021-09-25 16:40:10

#include <bits/stdc++.h>
using namespace std;
int main(){
    ios::sync_with_stdio(0);
    double a1,a2,a3,b1,b2,b3,x1,x2,x3;
    while(cin>>a1>>b1>>x1>>a2>>b2>>x2>>a3>>b3>>x3){
        double a=b2+(b2-a3)/(x3-x2)*(x2-x1),b=a2-(b3-a2)/(x3-x2)*(x2-x1);
       cout<<((a>=a1&&b<=b1)?"Yes":"No")<<endl;
    }
    return 0;
}

上一题