Hatena::Grouptopcoder

hama_DU@TopCoderへの道

2012-03-17SRM371, SRM372 (Practice)

SRM 371 SpiralRoute

|  SRM 371 SpiralRoute - hama_DU@TopCoderへの道 を含むブックマーク はてなブックマーク -  SRM 371 SpiralRoute - hama_DU@TopCoderへの道

http://www.topcoder.com/stat?c=problem_statement&pm=8262

  • min(width, length)の偶奇で場合分け。
public class SpiralRoute {
	public int[] thronePosition(int width, int length) {
		int mld2 = (Math.min(width, length) - 1) / 2;
		int x = mld2;
		int y = mld2;
		if (width == length) {
			if (width % 2 == 1) {
				return new int[]{x, y};
			} else {
				return new int[]{x, y+1};
			}
		} else {
			int mim = Math.min(width, length) % 2;
			if (mim % 2 == 1) {
				if (length > width) {
					y = length - mld2 - 1;
				} else {
					x = width - mld2 - 1;
				}
			} else {
				y++;					
			}
			
			return new int[]{x, y};
		}
	}
}