CF1642A Hard Way 题解

· · 题解

一道几何好题。

我们观察题目可以发现,只有在三角形的一条边平行于 x 轴且三角形的另外两条边都比它更靠近 x 轴时,才有可能存在所谓不安全的点。

所以只要判断平行,然后再验证是否在其他两条边上面即可。

放代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
  ios::sync_with_stdio(false);
  int t; cin>>t;
  while(t--){
    int x1,y1,x2,y2,x3,y3; cin>>x1>>y1>>x2>>y2>>x3>>y3;
    if(y1==y2 /* 平行 */ &&y3<y1 /* 判断边是否在上面 */ )cout<<abs(x2-x1)<<endl;
    else if(y1==y3&&y2<y1)cout<<abs(x3-x1)<<endl;
    else if(y2==y3&&y1<y2)cout<<abs(x3-x2)<<endl;
    else cout<<"0\n";
  }
  return 0;
}