1410.cpp

来自「这些是我到目前在PKU上做出的题目」· C++ 代码 · 共 24 行

CPP
24
字号
#include <iostream.h>
double min(double a,double b)
{if (a<b) return(a); else return(b);}
double max(double a,double b)
{if (a>b) return(a); else return(b);}
int main()
{int n,i;
 double x1,x2,y1,y2,xx1,xx2,yy1,yy2,t;
 cin>>n;
 for (i=1;i<=n;i++)
 {cin>>x1>>y1>>x2>>y2>>xx1>>yy2>>xx2>>yy1;
  if (xx1>xx2) {t=xx1;xx1=xx2;xx2=t;}
  if (yy1>yy2) {t=yy1;yy1=yy2;yy2=t;}
  if (x1>x2) {t=x1;x1=x2;x2=t;t=y1;y1=y2;y2=t;}
  if (x2<xx1 || x1>xx2) {cout<<"F\n";continue;}
  if (x1<xx1) {y1=y1+(y2-y1)*((xx1-x1)/(x2-x1));x1=xx1;}
  if (x2>xx2) {y2=y2+(y1-y2)*((xx2-x2)/(x1-x2));x2=xx2;}
  if (xx1<x1 && x2<xx2 && max(y1,y2)<yy2 && min(y1,y2)>yy1) {cout<<"T\n";continue;} 
  if (x1==xx1 && yy1<=y1 && y1<=yy2) {cout<<"T\n";continue;}
  if (x2==xx2 && yy1<=y2 && y2<=yy2) {cout<<"T\n";continue;}
  if ((max(y1,y2)>=yy2 && min(y1,y2)<=yy2) || (max(y1,y2)>=yy1 && min(y1,y2)<=yy1)) {cout<<"T\n";continue;}
  cout<<"F\n";}
return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?