結果
| 問題 | No.2555 Intriguing Triangle | 
| コンテスト | |
| ユーザー |  shobonvip | 
| 提出日時 | 2023-12-02 00:11:17 | 
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 2 ms / 2,000 ms | 
| コード長 | 1,206 bytes | 
| コンパイル時間 | 1,851 ms | 
| コンパイル使用メモリ | 195,232 KB | 
| 最終ジャッジ日時 | 2025-02-18 03:06:30 | 
| ジャッジサーバーID (参考情報) | judge3 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 28 | 
ソースコード
#include<bits/stdc++.h>
using namespace std;
int main(){
	int a, b, c; cin >> a >> b >> c;
	auto hen_to_cos = [&](double a, double b, double c){
		return (a*a + b*b - c*c) / (2.0*a*b);
	};
	auto exist = [&](int a, int b, int c){
		if (a + b > c && b + c > a && c + a > b) return true;
		return false;	
	};
	const double eps = 1e-7;
	bool mode = false;
	for (int x=a+2; x<b+c; x++){
		if (!exist(x, b, c)) continue;
		double ax = 0.0, ay = 0.0;
		double cx = c, cy = 0.0;
		double bx, by;
		double cos1 = hen_to_cos(b, c, x);
		double sin1 = sqrt(1 - cos1 * cos1);
		bx = cos1 * b;
		by = sin1 * b;
		for (int y=1; ; y++){
			if (x-y-a <= 0) break;
			double dx = bx + (cx - bx) * (double)y / (double)x;
			double dy = by + (cy - by) * (double)y / (double)x;
			double ex = bx + (cx - bx) * (double)(y+a) / (double)x;
			double ey = by + (cy - by) * (double)(y+a) / (double)x;
			double AD = sqrt((dx - ax) * (dx - ax) + (dy - ay) * (dy - ay));
			double AE = sqrt((ex - ax) * (ex - ax) + (ey - ay) * (ey - ay));
			if (abs(hen_to_cos(b, AD, y) - hen_to_cos(c, AE, x-y-a)) < eps){
				mode = true;
				break;
			}
		}
		if (mode) break;
	}
	if (mode){
		cout << "Yes\n";
	}else{
		cout << "No\n";
	}
}
            
            
            
        