Topcoder SRM 499 div2 easy "SimpleGuess"

問題:http://www.topcoder.com/stat?c=problem_statement&pm=10763(要ログイン)

ヒントとしていくつかの数値が与えられる.この数値のどれかがx+yおよびx-yを表しており,ヒントから得られるxとyのうちx*yが最大となるものを求める.

全部試す.

コード

import java.util.*;

public class SimpleGuess {

	public int getMaximum(int[] hints) {
		Arrays.sort(hints);
		int max = 0;
		for (int i = hints.length; i-- > 0;) {
			for (int x = hints[i]; x-- > 1;) {
				int y = hints[i] - x;
				if (Arrays.binarySearch(hints, x - y) >= 0) {
					max = Math.max(max, x * y);
				}
			}
		}
		return max;
	}

}