题目链接

Wannafly挑战赛21A

题解

代码

#include <cstdio>
#include <cmath>
#define MAX 1000005
#define Pi 3.14159265 struct Point{
double x,y;
void input() {
scanf("%lf%lf",&x,&y);
}
void output() {
printf("%f %f\n", x,y);
}
}p[MAX],s[MAX];
Point XZ(Point* p) {
return (Point){sin(Pi/4.0)*p->x+sin(Pi/4.0)*p->y, sin(Pi/4.0)*p->x-sin(Pi/4.0)*p->y};
} bool cmp1(Point* a, Point* b) {return a->x<b->x;}
bool cmp2(Point* a, Point* b) {return a->y>b->y;}
bool cmp3(Point* a, Point* b) {return a->y<b->y;}
bool cmp4(Point* a, Point* b) {return a->x>b->x;} int main () {
int T, n;
scanf ("%d", &T);
while (T--){
scanf("%d",&n);
for (int i = 0; i < n; i += 1)
p[i].input();
for (int i = 0; i < n; i += 1)
s[i] = XZ(p+i);
Point *a,*b,*c,*d;
a=b=c=d=&p[0];
for (int i = 1; i < n; i += 1){
if (cmp1(p+i,a))a=p+i;
if (cmp2(p+i,b))b=p+i;
if (cmp3(p+i,c))c=p+i;
if (cmp4(p+i,d))d=p+i;
}
if (a==b||a==c||d==b||d==c){
printf("Yes\n");
continue;
}
a=b=c=d=&s[0];
for (int i = 1; i < n; i += 1){
if (cmp1(s+i,a))a=s+i;
if (cmp2(s+i,b))b=s+i;
if (cmp3(s+i,c))c=s+i;
if (cmp4(s+i,d))d=s+i;
}
if (a==b||a==c||d==b||d==c){
printf("Yes\n");
continue;
}
printf("No\n");
}
return 0;
}

最新文章

  1. iOS instancetype or id ?
  2. wf(三)
  3. Anysys Fluent安装教程
  4. 【oracle】初学jobs
  5. php 与 ajax 获取123的案例
  6. Linq 语法举例
  7. Linux2.6内核 -- 结构的初始化
  8. jenkins 杀死衍生进程
  9. selenium2(WebDriver) API
  10. [原]docker 操作记录
  11. java设计模式综合项目实战视频教程
  12. 【转载】SQL注入
  13. AngularJS学习篇(三)
  14. Flask —— 信号(5)
  15. [leetcode]75. Sort Colors三色排序
  16. ecplise导入工程出现乱码的解决方案
  17. kill -9 a postgres process
  18. cocos2d-x中CCEditbox导出到lua
  19. IOS后台文件上传
  20. VMware Workstation 8正式版下载+密钥序列号

热门文章

  1. Pycharm使用详解
  2. SHELL (4) —— 变量的数值计算实践
  3. 数据库类型与JDBC TYPE 和Java类型对应关系
  4. 小程序登录、微信网页授权(Java版)
  5. 【洛谷 P2726】 [SHOI2005]树的双中心(树的重心)
  6. ffmpeg查看音频文件信息
  7. 在Windows 2008上安装Windows Mobile设备中心
  8. 2017/05/21 java 基础 随笔
  9. MySQL 5.7在线设置复制过滤【转】
  10. pixel像素基础