⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 poj1675_几何.cpp

📁 本人最近在acm.pku.edu.cn上通过的程序
💻 CPP
字号:
#include <algorithm>
#include <math.h>
using namespace std;
#define pi acos(-1)

struct Point{
	double x, y;
	double angle;
	
	double dist(){
		return x*x + y*y;
	}
	Point(double x = 0, double y = 0, double angle = 0): x(x), y(y), angle(angle) {}
	
	void get(){
		scanf("%lf %lf", &x, &y);
		double d = dist();
		if (y >= 0) angle = acos(x / d);
		else angle = 2 * pi - acos(x / d);
		angle = angle / pi * 180;
	}
	
	bool operator < (const Point &a) const {
		return angle < a. angle;
	}
};

Point a[3];
double r;

bool check(){
	if (a[2]. angle - a[0]. angle <= 120) return false;
	if (a[1]. angle + 360 - a[2]. angle <= 120) return false;
	if (a[0]. angle + 360 - a[1]. angle <= 120) return false;
	return true;  
}

int main(){
	int cases; scanf("%d", &cases);
	while (cases--){
		scanf("%lf", &r);
		a[0]. get(), a[1]. get(), a[2]. get();
		sort(a, a + 3);
		if (check()) printf("Yes\n"); else printf("No\n");
	}
	return 0;	
}

⌨️ 快捷键说明

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