SRM 449d1 easy
あり得るすべての辺の長さの組合せを列挙して最大の面積の三角形を求める.
#coding: utf-8 import math EPS = 0.0001 def pitagoras(x): a = 0 ret = [] while a ** 2 <= x / 2 + 1: r = x - a ** 2 b = math.sqrt(r) b += EPS c = int(b) if c ** 2 == r: ret.append((a,c)) a += 1 return ret class MaxTriangle: def calculateArea(self, A, B): a = pitagoras(A) b = pitagoras(B) if len(a) == 0 or len(b) == 0: return -1.0 ans = 0.0 for i,j in a: for k,l in b: ans = max(ans,max(abs(i*k+j*l),abs(i*l+j*k))) return ans / 2.0