/ BOJ

BOJ_12100_2048_JAVA

문제 : 2048

링크 : BOJ_12100_2048

접근 방식

게임 2048의 기능을 구현하는 문제였다. 횟수가 5번으로 정해져 있었기 때문에 중복순열을 이용한 완전탐색으로 풀 수 있었다.

2048의 기능은, 이동하고자 하는 방향의 끝점으로부터 반대쪽으로 탐색하며, 같은 숫자가 존재한다면 합치고, 다른 숫자인 경우 이동하고자 하는 방향으로 이동시킨다. 한 번 합쳐진 칸에는 방문처리를 하여 한 번 합쳐진 숫자가 다시 합쳐지는 일이 없도록 했다.

시간을 줄여보기 위해서 5개에서 5개를 뽑는 중복순열을 미리 구해서 배열로 선언해보았다. 선언하기 이전보다 속도가 많이 빨라졌지만, 위의 2048의 기능을 수행하는 부분에서 생각보다 많이 걸려 다른 문제풀이만큼 처리시간을 줄이지는 못했다.

소스 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class BOJ_12100_2048 {

	static int N, arr[][];
	static int numbers[];
	static int answer;
	static int arr2[][];
	public static int[] dx = { -1, 1, 0, 0 };
	public static int[] dy = { 0, 0, -1, 1 };

	public static void main(String[] args) throws IOException {

		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

		N = Integer.parseInt(in.readLine());

		arr = new int[N][N];
		StringTokenizer st;
		for (int i = 0; i < N; i++) {
			st = new StringTokenizer(in.readLine(), " ");
			for (int j = 0; j < N; j++) {
				arr[i][j] = Integer.parseInt(st.nextToken());
			}
		}
		arr2 = new int[][] { { 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 1 }, { 0, 0, 0, 0, 2 }, { 0, 0, 0, 0, 3 },
				{ 0, 0, 0, 1, 0 }, { 0, 0, 0, 1, 1 }, { 0, 0, 0, 1, 2 }, { 0, 0, 0, 1, 3 }, { 0, 0, 0, 2, 0 },
				{ 0, 0, 0, 2, 1 }, { 0, 0, 0, 2, 2 }, { 0, 0, 0, 2, 3 }, { 0, 0, 0, 3, 0 }, { 0, 0, 0, 3, 1 },
				{ 0, 0, 0, 3, 2 }, { 0, 0, 0, 3, 3 }, { 0, 0, 1, 0, 0 }, { 0, 0, 1, 0, 1 }, { 0, 0, 1, 0, 2 },
				{ 0, 0, 1, 0, 3 }, { 0, 0, 1, 1, 0 }, { 0, 0, 1, 1, 1 }, { 0, 0, 1, 1, 2 }, { 0, 0, 1, 1, 3 },
				{ 0, 0, 1, 2, 0 }, { 0, 0, 1, 2, 1 }, { 0, 0, 1, 2, 2 }, { 0, 0, 1, 2, 3 }, { 0, 0, 1, 3, 0 },
				{ 0, 0, 1, 3, 1 }, { 0, 0, 1, 3, 2 }, { 0, 0, 1, 3, 3 }, { 0, 0, 2, 0, 0 }, { 0, 0, 2, 0, 1 },
				{ 0, 0, 2, 0, 2 }, { 0, 0, 2, 0, 3 }, { 0, 0, 2, 1, 0 }, { 0, 0, 2, 1, 1 }, { 0, 0, 2, 1, 2 },
				{ 0, 0, 2, 1, 3 }, { 0, 0, 2, 2, 0 }, { 0, 0, 2, 2, 1 }, { 0, 0, 2, 2, 2 }, { 0, 0, 2, 2, 3 },
				{ 0, 0, 2, 3, 0 }, { 0, 0, 2, 3, 1 }, { 0, 0, 2, 3, 2 }, { 0, 0, 2, 3, 3 }, { 0, 0, 3, 0, 0 },
				{ 0, 0, 3, 0, 1 }, { 0, 0, 3, 0, 2 }, { 0, 0, 3, 0, 3 }, { 0, 0, 3, 1, 0 }, { 0, 0, 3, 1, 1 },
				{ 0, 0, 3, 1, 2 }, { 0, 0, 3, 1, 3 }, { 0, 0, 3, 2, 0 }, { 0, 0, 3, 2, 1 }, { 0, 0, 3, 2, 2 },
				{ 0, 0, 3, 2, 3 }, { 0, 0, 3, 3, 0 }, { 0, 0, 3, 3, 1 }, { 0, 0, 3, 3, 2 }, { 0, 0, 3, 3, 3 },
				{ 0, 1, 0, 0, 0 }, { 0, 1, 0, 0, 1 }, { 0, 1, 0, 0, 2 }, { 0, 1, 0, 0, 3 }, { 0, 1, 0, 1, 0 },
				{ 0, 1, 0, 1, 1 }, { 0, 1, 0, 1, 2 }, { 0, 1, 0, 1, 3 }, { 0, 1, 0, 2, 0 }, { 0, 1, 0, 2, 1 },
				{ 0, 1, 0, 2, 2 }, { 0, 1, 0, 2, 3 }, { 0, 1, 0, 3, 0 }, { 0, 1, 0, 3, 1 }, { 0, 1, 0, 3, 2 },
				{ 0, 1, 0, 3, 3 }, { 0, 1, 1, 0, 0 }, { 0, 1, 1, 0, 1 }, { 0, 1, 1, 0, 2 }, { 0, 1, 1, 0, 3 },
				{ 0, 1, 1, 1, 0 }, { 0, 1, 1, 1, 1 }, { 0, 1, 1, 1, 2 }, { 0, 1, 1, 1, 3 }, { 0, 1, 1, 2, 0 },
				{ 0, 1, 1, 2, 1 }, { 0, 1, 1, 2, 2 }, { 0, 1, 1, 2, 3 }, { 0, 1, 1, 3, 0 }, { 0, 1, 1, 3, 1 },
				{ 0, 1, 1, 3, 2 }, { 0, 1, 1, 3, 3 }, { 0, 1, 2, 0, 0 }, { 0, 1, 2, 0, 1 }, { 0, 1, 2, 0, 2 },
				{ 0, 1, 2, 0, 3 }, { 0, 1, 2, 1, 0 }, { 0, 1, 2, 1, 1 }, { 0, 1, 2, 1, 2 }, { 0, 1, 2, 1, 3 },
				{ 0, 1, 2, 2, 0 }, { 0, 1, 2, 2, 1 }, { 0, 1, 2, 2, 2 }, { 0, 1, 2, 2, 3 }, { 0, 1, 2, 3, 0 },
				{ 0, 1, 2, 3, 1 }, { 0, 1, 2, 3, 2 }, { 0, 1, 2, 3, 3 }, { 0, 1, 3, 0, 0 }, { 0, 1, 3, 0, 1 },
				{ 0, 1, 3, 0, 2 }, { 0, 1, 3, 0, 3 }, { 0, 1, 3, 1, 0 }, { 0, 1, 3, 1, 1 }, { 0, 1, 3, 1, 2 },
				{ 0, 1, 3, 1, 3 }, { 0, 1, 3, 2, 0 }, { 0, 1, 3, 2, 1 }, { 0, 1, 3, 2, 2 }, { 0, 1, 3, 2, 3 },
				{ 0, 1, 3, 3, 0 }, { 0, 1, 3, 3, 1 }, { 0, 1, 3, 3, 2 }, { 0, 1, 3, 3, 3 }, { 0, 2, 0, 0, 0 },
				{ 0, 2, 0, 0, 1 }, { 0, 2, 0, 0, 2 }, { 0, 2, 0, 0, 3 }, { 0, 2, 0, 1, 0 }, { 0, 2, 0, 1, 1 },
				{ 0, 2, 0, 1, 2 }, { 0, 2, 0, 1, 3 }, { 0, 2, 0, 2, 0 }, { 0, 2, 0, 2, 1 }, { 0, 2, 0, 2, 2 },
				{ 0, 2, 0, 2, 3 }, { 0, 2, 0, 3, 0 }, { 0, 2, 0, 3, 1 }, { 0, 2, 0, 3, 2 }, { 0, 2, 0, 3, 3 },
				{ 0, 2, 1, 0, 0 }, { 0, 2, 1, 0, 1 }, { 0, 2, 1, 0, 2 }, { 0, 2, 1, 0, 3 }, { 0, 2, 1, 1, 0 },
				{ 0, 2, 1, 1, 1 }, { 0, 2, 1, 1, 2 }, { 0, 2, 1, 1, 3 }, { 0, 2, 1, 2, 0 }, { 0, 2, 1, 2, 1 },
				{ 0, 2, 1, 2, 2 }, { 0, 2, 1, 2, 3 }, { 0, 2, 1, 3, 0 }, { 0, 2, 1, 3, 1 }, { 0, 2, 1, 3, 2 },
				{ 0, 2, 1, 3, 3 }, { 0, 2, 2, 0, 0 }, { 0, 2, 2, 0, 1 }, { 0, 2, 2, 0, 2 }, { 0, 2, 2, 0, 3 },
				{ 0, 2, 2, 1, 0 }, { 0, 2, 2, 1, 1 }, { 0, 2, 2, 1, 2 }, { 0, 2, 2, 1, 3 }, { 0, 2, 2, 2, 0 },
				{ 0, 2, 2, 2, 1 }, { 0, 2, 2, 2, 2 }, { 0, 2, 2, 2, 3 }, { 0, 2, 2, 3, 0 }, { 0, 2, 2, 3, 1 },
				{ 0, 2, 2, 3, 2 }, { 0, 2, 2, 3, 3 }, { 0, 2, 3, 0, 0 }, { 0, 2, 3, 0, 1 }, { 0, 2, 3, 0, 2 },
				{ 0, 2, 3, 0, 3 }, { 0, 2, 3, 1, 0 }, { 0, 2, 3, 1, 1 }, { 0, 2, 3, 1, 2 }, { 0, 2, 3, 1, 3 },
				{ 0, 2, 3, 2, 0 }, { 0, 2, 3, 2, 1 }, { 0, 2, 3, 2, 2 }, { 0, 2, 3, 2, 3 }, { 0, 2, 3, 3, 0 },
				{ 0, 2, 3, 3, 1 }, { 0, 2, 3, 3, 2 }, { 0, 2, 3, 3, 3 }, { 0, 3, 0, 0, 0 }, { 0, 3, 0, 0, 1 },
				{ 0, 3, 0, 0, 2 }, { 0, 3, 0, 0, 3 }, { 0, 3, 0, 1, 0 }, { 0, 3, 0, 1, 1 }, { 0, 3, 0, 1, 2 },
				{ 0, 3, 0, 1, 3 }, { 0, 3, 0, 2, 0 }, { 0, 3, 0, 2, 1 }, { 0, 3, 0, 2, 2 }, { 0, 3, 0, 2, 3 },
				{ 0, 3, 0, 3, 0 }, { 0, 3, 0, 3, 1 }, { 0, 3, 0, 3, 2 }, { 0, 3, 0, 3, 3 }, { 0, 3, 1, 0, 0 },
				{ 0, 3, 1, 0, 1 }, { 0, 3, 1, 0, 2 }, { 0, 3, 1, 0, 3 }, { 0, 3, 1, 1, 0 }, { 0, 3, 1, 1, 1 },
				{ 0, 3, 1, 1, 2 }, { 0, 3, 1, 1, 3 }, { 0, 3, 1, 2, 0 }, { 0, 3, 1, 2, 1 }, { 0, 3, 1, 2, 2 },
				{ 0, 3, 1, 2, 3 }, { 0, 3, 1, 3, 0 }, { 0, 3, 1, 3, 1 }, { 0, 3, 1, 3, 2 }, { 0, 3, 1, 3, 3 },
				{ 0, 3, 2, 0, 0 }, { 0, 3, 2, 0, 1 }, { 0, 3, 2, 0, 2 }, { 0, 3, 2, 0, 3 }, { 0, 3, 2, 1, 0 },
				{ 0, 3, 2, 1, 1 }, { 0, 3, 2, 1, 2 }, { 0, 3, 2, 1, 3 }, { 0, 3, 2, 2, 0 }, { 0, 3, 2, 2, 1 },
				{ 0, 3, 2, 2, 2 }, { 0, 3, 2, 2, 3 }, { 0, 3, 2, 3, 0 }, { 0, 3, 2, 3, 1 }, { 0, 3, 2, 3, 2 },
				{ 0, 3, 2, 3, 3 }, { 0, 3, 3, 0, 0 }, { 0, 3, 3, 0, 1 }, { 0, 3, 3, 0, 2 }, { 0, 3, 3, 0, 3 },
				{ 0, 3, 3, 1, 0 }, { 0, 3, 3, 1, 1 }, { 0, 3, 3, 1, 2 }, { 0, 3, 3, 1, 3 }, { 0, 3, 3, 2, 0 },
				{ 0, 3, 3, 2, 1 }, { 0, 3, 3, 2, 2 }, { 0, 3, 3, 2, 3 }, { 0, 3, 3, 3, 0 }, { 0, 3, 3, 3, 1 },
				{ 0, 3, 3, 3, 2 }, { 0, 3, 3, 3, 3 }, { 1, 0, 0, 0, 0 }, { 1, 0, 0, 0, 1 }, { 1, 0, 0, 0, 2 },
				{ 1, 0, 0, 0, 3 }, { 1, 0, 0, 1, 0 }, { 1, 0, 0, 1, 1 }, { 1, 0, 0, 1, 2 }, { 1, 0, 0, 1, 3 },
				{ 1, 0, 0, 2, 0 }, { 1, 0, 0, 2, 1 }, { 1, 0, 0, 2, 2 }, { 1, 0, 0, 2, 3 }, { 1, 0, 0, 3, 0 },
				{ 1, 0, 0, 3, 1 }, { 1, 0, 0, 3, 2 }, { 1, 0, 0, 3, 3 }, { 1, 0, 1, 0, 0 }, { 1, 0, 1, 0, 1 },
				{ 1, 0, 1, 0, 2 }, { 1, 0, 1, 0, 3 }, { 1, 0, 1, 1, 0 }, { 1, 0, 1, 1, 1 }, { 1, 0, 1, 1, 2 },
				{ 1, 0, 1, 1, 3 }, { 1, 0, 1, 2, 0 }, { 1, 0, 1, 2, 1 }, { 1, 0, 1, 2, 2 }, { 1, 0, 1, 2, 3 },
				{ 1, 0, 1, 3, 0 }, { 1, 0, 1, 3, 1 }, { 1, 0, 1, 3, 2 }, { 1, 0, 1, 3, 3 }, { 1, 0, 2, 0, 0 },
				{ 1, 0, 2, 0, 1 }, { 1, 0, 2, 0, 2 }, { 1, 0, 2, 0, 3 }, { 1, 0, 2, 1, 0 }, { 1, 0, 2, 1, 1 },
				{ 1, 0, 2, 1, 2 }, { 1, 0, 2, 1, 3 }, { 1, 0, 2, 2, 0 }, { 1, 0, 2, 2, 1 }, { 1, 0, 2, 2, 2 },
				{ 1, 0, 2, 2, 3 }, { 1, 0, 2, 3, 0 }, { 1, 0, 2, 3, 1 }, { 1, 0, 2, 3, 2 }, { 1, 0, 2, 3, 3 },
				{ 1, 0, 3, 0, 0 }, { 1, 0, 3, 0, 1 }, { 1, 0, 3, 0, 2 }, { 1, 0, 3, 0, 3 }, { 1, 0, 3, 1, 0 },
				{ 1, 0, 3, 1, 1 }, { 1, 0, 3, 1, 2 }, { 1, 0, 3, 1, 3 }, { 1, 0, 3, 2, 0 }, { 1, 0, 3, 2, 1 },
				{ 1, 0, 3, 2, 2 }, { 1, 0, 3, 2, 3 }, { 1, 0, 3, 3, 0 }, { 1, 0, 3, 3, 1 }, { 1, 0, 3, 3, 2 },
				{ 1, 0, 3, 3, 3 }, { 1, 1, 0, 0, 0 }, { 1, 1, 0, 0, 1 }, { 1, 1, 0, 0, 2 }, { 1, 1, 0, 0, 3 },
				{ 1, 1, 0, 1, 0 }, { 1, 1, 0, 1, 1 }, { 1, 1, 0, 1, 2 }, { 1, 1, 0, 1, 3 }, { 1, 1, 0, 2, 0 },
				{ 1, 1, 0, 2, 1 }, { 1, 1, 0, 2, 2 }, { 1, 1, 0, 2, 3 }, { 1, 1, 0, 3, 0 }, { 1, 1, 0, 3, 1 },
				{ 1, 1, 0, 3, 2 }, { 1, 1, 0, 3, 3 }, { 1, 1, 1, 0, 0 }, { 1, 1, 1, 0, 1 }, { 1, 1, 1, 0, 2 },
				{ 1, 1, 1, 0, 3 }, { 1, 1, 1, 1, 0 }, { 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 2 }, { 1, 1, 1, 1, 3 },
				{ 1, 1, 1, 2, 0 }, { 1, 1, 1, 2, 1 }, { 1, 1, 1, 2, 2 }, { 1, 1, 1, 2, 3 }, { 1, 1, 1, 3, 0 },
				{ 1, 1, 1, 3, 1 }, { 1, 1, 1, 3, 2 }, { 1, 1, 1, 3, 3 }, { 1, 1, 2, 0, 0 }, { 1, 1, 2, 0, 1 },
				{ 1, 1, 2, 0, 2 }, { 1, 1, 2, 0, 3 }, { 1, 1, 2, 1, 0 }, { 1, 1, 2, 1, 1 }, { 1, 1, 2, 1, 2 },
				{ 1, 1, 2, 1, 3 }, { 1, 1, 2, 2, 0 }, { 1, 1, 2, 2, 1 }, { 1, 1, 2, 2, 2 }, { 1, 1, 2, 2, 3 },
				{ 1, 1, 2, 3, 0 }, { 1, 1, 2, 3, 1 }, { 1, 1, 2, 3, 2 }, { 1, 1, 2, 3, 3 }, { 1, 1, 3, 0, 0 },
				{ 1, 1, 3, 0, 1 }, { 1, 1, 3, 0, 2 }, { 1, 1, 3, 0, 3 }, { 1, 1, 3, 1, 0 }, { 1, 1, 3, 1, 1 },
				{ 1, 1, 3, 1, 2 }, { 1, 1, 3, 1, 3 }, { 1, 1, 3, 2, 0 }, { 1, 1, 3, 2, 1 }, { 1, 1, 3, 2, 2 },
				{ 1, 1, 3, 2, 3 }, { 1, 1, 3, 3, 0 }, { 1, 1, 3, 3, 1 }, { 1, 1, 3, 3, 2 }, { 1, 1, 3, 3, 3 },
				{ 1, 2, 0, 0, 0 }, { 1, 2, 0, 0, 1 }, { 1, 2, 0, 0, 2 }, { 1, 2, 0, 0, 3 }, { 1, 2, 0, 1, 0 },
				{ 1, 2, 0, 1, 1 }, { 1, 2, 0, 1, 2 }, { 1, 2, 0, 1, 3 }, { 1, 2, 0, 2, 0 }, { 1, 2, 0, 2, 1 },
				{ 1, 2, 0, 2, 2 }, { 1, 2, 0, 2, 3 }, { 1, 2, 0, 3, 0 }, { 1, 2, 0, 3, 1 }, { 1, 2, 0, 3, 2 },
				{ 1, 2, 0, 3, 3 }, { 1, 2, 1, 0, 0 }, { 1, 2, 1, 0, 1 }, { 1, 2, 1, 0, 2 }, { 1, 2, 1, 0, 3 },
				{ 1, 2, 1, 1, 0 }, { 1, 2, 1, 1, 1 }, { 1, 2, 1, 1, 2 }, { 1, 2, 1, 1, 3 }, { 1, 2, 1, 2, 0 },
				{ 1, 2, 1, 2, 1 }, { 1, 2, 1, 2, 2 }, { 1, 2, 1, 2, 3 }, { 1, 2, 1, 3, 0 }, { 1, 2, 1, 3, 1 },
				{ 1, 2, 1, 3, 2 }, { 1, 2, 1, 3, 3 }, { 1, 2, 2, 0, 0 }, { 1, 2, 2, 0, 1 }, { 1, 2, 2, 0, 2 },
				{ 1, 2, 2, 0, 3 }, { 1, 2, 2, 1, 0 }, { 1, 2, 2, 1, 1 }, { 1, 2, 2, 1, 2 }, { 1, 2, 2, 1, 3 },
				{ 1, 2, 2, 2, 0 }, { 1, 2, 2, 2, 1 }, { 1, 2, 2, 2, 2 }, { 1, 2, 2, 2, 3 }, { 1, 2, 2, 3, 0 },
				{ 1, 2, 2, 3, 1 }, { 1, 2, 2, 3, 2 }, { 1, 2, 2, 3, 3 }, { 1, 2, 3, 0, 0 }, { 1, 2, 3, 0, 1 },
				{ 1, 2, 3, 0, 2 }, { 1, 2, 3, 0, 3 }, { 1, 2, 3, 1, 0 }, { 1, 2, 3, 1, 1 }, { 1, 2, 3, 1, 2 },
				{ 1, 2, 3, 1, 3 }, { 1, 2, 3, 2, 0 }, { 1, 2, 3, 2, 1 }, { 1, 2, 3, 2, 2 }, { 1, 2, 3, 2, 3 },
				{ 1, 2, 3, 3, 0 }, { 1, 2, 3, 3, 1 }, { 1, 2, 3, 3, 2 }, { 1, 2, 3, 3, 3 }, { 1, 3, 0, 0, 0 },
				{ 1, 3, 0, 0, 1 }, { 1, 3, 0, 0, 2 }, { 1, 3, 0, 0, 3 }, { 1, 3, 0, 1, 0 }, { 1, 3, 0, 1, 1 },
				{ 1, 3, 0, 1, 2 }, { 1, 3, 0, 1, 3 }, { 1, 3, 0, 2, 0 }, { 1, 3, 0, 2, 1 }, { 1, 3, 0, 2, 2 },
				{ 1, 3, 0, 2, 3 }, { 1, 3, 0, 3, 0 }, { 1, 3, 0, 3, 1 }, { 1, 3, 0, 3, 2 }, { 1, 3, 0, 3, 3 },
				{ 1, 3, 1, 0, 0 }, { 1, 3, 1, 0, 1 }, { 1, 3, 1, 0, 2 }, { 1, 3, 1, 0, 3 }, { 1, 3, 1, 1, 0 },
				{ 1, 3, 1, 1, 1 }, { 1, 3, 1, 1, 2 }, { 1, 3, 1, 1, 3 }, { 1, 3, 1, 2, 0 }, { 1, 3, 1, 2, 1 },
				{ 1, 3, 1, 2, 2 }, { 1, 3, 1, 2, 3 }, { 1, 3, 1, 3, 0 }, { 1, 3, 1, 3, 1 }, { 1, 3, 1, 3, 2 },
				{ 1, 3, 1, 3, 3 }, { 1, 3, 2, 0, 0 }, { 1, 3, 2, 0, 1 }, { 1, 3, 2, 0, 2 }, { 1, 3, 2, 0, 3 },
				{ 1, 3, 2, 1, 0 }, { 1, 3, 2, 1, 1 }, { 1, 3, 2, 1, 2 }, { 1, 3, 2, 1, 3 }, { 1, 3, 2, 2, 0 },
				{ 1, 3, 2, 2, 1 }, { 1, 3, 2, 2, 2 }, { 1, 3, 2, 2, 3 }, { 1, 3, 2, 3, 0 }, { 1, 3, 2, 3, 1 },
				{ 1, 3, 2, 3, 2 }, { 1, 3, 2, 3, 3 }, { 1, 3, 3, 0, 0 }, { 1, 3, 3, 0, 1 }, { 1, 3, 3, 0, 2 },
				{ 1, 3, 3, 0, 3 }, { 1, 3, 3, 1, 0 }, { 1, 3, 3, 1, 1 }, { 1, 3, 3, 1, 2 }, { 1, 3, 3, 1, 3 },
				{ 1, 3, 3, 2, 0 }, { 1, 3, 3, 2, 1 }, { 1, 3, 3, 2, 2 }, { 1, 3, 3, 2, 3 }, { 1, 3, 3, 3, 0 },
				{ 1, 3, 3, 3, 1 }, { 1, 3, 3, 3, 2 }, { 1, 3, 3, 3, 3 }, { 2, 0, 0, 0, 0 }, { 2, 0, 0, 0, 1 },
				{ 2, 0, 0, 0, 2 }, { 2, 0, 0, 0, 3 }, { 2, 0, 0, 1, 0 }, { 2, 0, 0, 1, 1 }, { 2, 0, 0, 1, 2 },
				{ 2, 0, 0, 1, 3 }, { 2, 0, 0, 2, 0 }, { 2, 0, 0, 2, 1 }, { 2, 0, 0, 2, 2 }, { 2, 0, 0, 2, 3 },
				{ 2, 0, 0, 3, 0 }, { 2, 0, 0, 3, 1 }, { 2, 0, 0, 3, 2 }, { 2, 0, 0, 3, 3 }, { 2, 0, 1, 0, 0 },
				{ 2, 0, 1, 0, 1 }, { 2, 0, 1, 0, 2 }, { 2, 0, 1, 0, 3 }, { 2, 0, 1, 1, 0 }, { 2, 0, 1, 1, 1 },
				{ 2, 0, 1, 1, 2 }, { 2, 0, 1, 1, 3 }, { 2, 0, 1, 2, 0 }, { 2, 0, 1, 2, 1 }, { 2, 0, 1, 2, 2 },
				{ 2, 0, 1, 2, 3 }, { 2, 0, 1, 3, 0 }, { 2, 0, 1, 3, 1 }, { 2, 0, 1, 3, 2 }, { 2, 0, 1, 3, 3 },
				{ 2, 0, 2, 0, 0 }, { 2, 0, 2, 0, 1 }, { 2, 0, 2, 0, 2 }, { 2, 0, 2, 0, 3 }, { 2, 0, 2, 1, 0 },
				{ 2, 0, 2, 1, 1 }, { 2, 0, 2, 1, 2 }, { 2, 0, 2, 1, 3 }, { 2, 0, 2, 2, 0 }, { 2, 0, 2, 2, 1 },
				{ 2, 0, 2, 2, 2 }, { 2, 0, 2, 2, 3 }, { 2, 0, 2, 3, 0 }, { 2, 0, 2, 3, 1 }, { 2, 0, 2, 3, 2 },
				{ 2, 0, 2, 3, 3 }, { 2, 0, 3, 0, 0 }, { 2, 0, 3, 0, 1 }, { 2, 0, 3, 0, 2 }, { 2, 0, 3, 0, 3 },
				{ 2, 0, 3, 1, 0 }, { 2, 0, 3, 1, 1 }, { 2, 0, 3, 1, 2 }, { 2, 0, 3, 1, 3 }, { 2, 0, 3, 2, 0 },
				{ 2, 0, 3, 2, 1 }, { 2, 0, 3, 2, 2 }, { 2, 0, 3, 2, 3 }, { 2, 0, 3, 3, 0 }, { 2, 0, 3, 3, 1 },
				{ 2, 0, 3, 3, 2 }, { 2, 0, 3, 3, 3 }, { 2, 1, 0, 0, 0 }, { 2, 1, 0, 0, 1 }, { 2, 1, 0, 0, 2 },
				{ 2, 1, 0, 0, 3 }, { 2, 1, 0, 1, 0 }, { 2, 1, 0, 1, 1 }, { 2, 1, 0, 1, 2 }, { 2, 1, 0, 1, 3 },
				{ 2, 1, 0, 2, 0 }, { 2, 1, 0, 2, 1 }, { 2, 1, 0, 2, 2 }, { 2, 1, 0, 2, 3 }, { 2, 1, 0, 3, 0 },
				{ 2, 1, 0, 3, 1 }, { 2, 1, 0, 3, 2 }, { 2, 1, 0, 3, 3 }, { 2, 1, 1, 0, 0 }, { 2, 1, 1, 0, 1 },
				{ 2, 1, 1, 0, 2 }, { 2, 1, 1, 0, 3 }, { 2, 1, 1, 1, 0 }, { 2, 1, 1, 1, 1 }, { 2, 1, 1, 1, 2 },
				{ 2, 1, 1, 1, 3 }, { 2, 1, 1, 2, 0 }, { 2, 1, 1, 2, 1 }, { 2, 1, 1, 2, 2 }, { 2, 1, 1, 2, 3 },
				{ 2, 1, 1, 3, 0 }, { 2, 1, 1, 3, 1 }, { 2, 1, 1, 3, 2 }, { 2, 1, 1, 3, 3 }, { 2, 1, 2, 0, 0 },
				{ 2, 1, 2, 0, 1 }, { 2, 1, 2, 0, 2 }, { 2, 1, 2, 0, 3 }, { 2, 1, 2, 1, 0 }, { 2, 1, 2, 1, 1 },
				{ 2, 1, 2, 1, 2 }, { 2, 1, 2, 1, 3 }, { 2, 1, 2, 2, 0 }, { 2, 1, 2, 2, 1 }, { 2, 1, 2, 2, 2 },
				{ 2, 1, 2, 2, 3 }, { 2, 1, 2, 3, 0 }, { 2, 1, 2, 3, 1 }, { 2, 1, 2, 3, 2 }, { 2, 1, 2, 3, 3 },
				{ 2, 1, 3, 0, 0 }, { 2, 1, 3, 0, 1 }, { 2, 1, 3, 0, 2 }, { 2, 1, 3, 0, 3 }, { 2, 1, 3, 1, 0 },
				{ 2, 1, 3, 1, 1 }, { 2, 1, 3, 1, 2 }, { 2, 1, 3, 1, 3 }, { 2, 1, 3, 2, 0 }, { 2, 1, 3, 2, 1 },
				{ 2, 1, 3, 2, 2 }, { 2, 1, 3, 2, 3 }, { 2, 1, 3, 3, 0 }, { 2, 1, 3, 3, 1 }, { 2, 1, 3, 3, 2 },
				{ 2, 1, 3, 3, 3 }, { 2, 2, 0, 0, 0 }, { 2, 2, 0, 0, 1 }, { 2, 2, 0, 0, 2 }, { 2, 2, 0, 0, 3 },
				{ 2, 2, 0, 1, 0 }, { 2, 2, 0, 1, 1 }, { 2, 2, 0, 1, 2 }, { 2, 2, 0, 1, 3 }, { 2, 2, 0, 2, 0 },
				{ 2, 2, 0, 2, 1 }, { 2, 2, 0, 2, 2 }, { 2, 2, 0, 2, 3 }, { 2, 2, 0, 3, 0 }, { 2, 2, 0, 3, 1 },
				{ 2, 2, 0, 3, 2 }, { 2, 2, 0, 3, 3 }, { 2, 2, 1, 0, 0 }, { 2, 2, 1, 0, 1 }, { 2, 2, 1, 0, 2 },
				{ 2, 2, 1, 0, 3 }, { 2, 2, 1, 1, 0 }, { 2, 2, 1, 1, 1 }, { 2, 2, 1, 1, 2 }, { 2, 2, 1, 1, 3 },
				{ 2, 2, 1, 2, 0 }, { 2, 2, 1, 2, 1 }, { 2, 2, 1, 2, 2 }, { 2, 2, 1, 2, 3 }, { 2, 2, 1, 3, 0 },
				{ 2, 2, 1, 3, 1 }, { 2, 2, 1, 3, 2 }, { 2, 2, 1, 3, 3 }, { 2, 2, 2, 0, 0 }, { 2, 2, 2, 0, 1 },
				{ 2, 2, 2, 0, 2 }, { 2, 2, 2, 0, 3 }, { 2, 2, 2, 1, 0 }, { 2, 2, 2, 1, 1 }, { 2, 2, 2, 1, 2 },
				{ 2, 2, 2, 1, 3 }, { 2, 2, 2, 2, 0 }, { 2, 2, 2, 2, 1 }, { 2, 2, 2, 2, 2 }, { 2, 2, 2, 2, 3 },
				{ 2, 2, 2, 3, 0 }, { 2, 2, 2, 3, 1 }, { 2, 2, 2, 3, 2 }, { 2, 2, 2, 3, 3 }, { 2, 2, 3, 0, 0 },
				{ 2, 2, 3, 0, 1 }, { 2, 2, 3, 0, 2 }, { 2, 2, 3, 0, 3 }, { 2, 2, 3, 1, 0 }, { 2, 2, 3, 1, 1 },
				{ 2, 2, 3, 1, 2 }, { 2, 2, 3, 1, 3 }, { 2, 2, 3, 2, 0 }, { 2, 2, 3, 2, 1 }, { 2, 2, 3, 2, 2 },
				{ 2, 2, 3, 2, 3 }, { 2, 2, 3, 3, 0 }, { 2, 2, 3, 3, 1 }, { 2, 2, 3, 3, 2 }, { 2, 2, 3, 3, 3 },
				{ 2, 3, 0, 0, 0 }, { 2, 3, 0, 0, 1 }, { 2, 3, 0, 0, 2 }, { 2, 3, 0, 0, 3 }, { 2, 3, 0, 1, 0 },
				{ 2, 3, 0, 1, 1 }, { 2, 3, 0, 1, 2 }, { 2, 3, 0, 1, 3 }, { 2, 3, 0, 2, 0 }, { 2, 3, 0, 2, 1 },
				{ 2, 3, 0, 2, 2 }, { 2, 3, 0, 2, 3 }, { 2, 3, 0, 3, 0 }, { 2, 3, 0, 3, 1 }, { 2, 3, 0, 3, 2 },
				{ 2, 3, 0, 3, 3 }, { 2, 3, 1, 0, 0 }, { 2, 3, 1, 0, 1 }, { 2, 3, 1, 0, 2 }, { 2, 3, 1, 0, 3 },
				{ 2, 3, 1, 1, 0 }, { 2, 3, 1, 1, 1 }, { 2, 3, 1, 1, 2 }, { 2, 3, 1, 1, 3 }, { 2, 3, 1, 2, 0 },
				{ 2, 3, 1, 2, 1 }, { 2, 3, 1, 2, 2 }, { 2, 3, 1, 2, 3 }, { 2, 3, 1, 3, 0 }, { 2, 3, 1, 3, 1 },
				{ 2, 3, 1, 3, 2 }, { 2, 3, 1, 3, 3 }, { 2, 3, 2, 0, 0 }, { 2, 3, 2, 0, 1 }, { 2, 3, 2, 0, 2 },
				{ 2, 3, 2, 0, 3 }, { 2, 3, 2, 1, 0 }, { 2, 3, 2, 1, 1 }, { 2, 3, 2, 1, 2 }, { 2, 3, 2, 1, 3 },
				{ 2, 3, 2, 2, 0 }, { 2, 3, 2, 2, 1 }, { 2, 3, 2, 2, 2 }, { 2, 3, 2, 2, 3 }, { 2, 3, 2, 3, 0 },
				{ 2, 3, 2, 3, 1 }, { 2, 3, 2, 3, 2 }, { 2, 3, 2, 3, 3 }, { 2, 3, 3, 0, 0 }, { 2, 3, 3, 0, 1 },
				{ 2, 3, 3, 0, 2 }, { 2, 3, 3, 0, 3 }, { 2, 3, 3, 1, 0 }, { 2, 3, 3, 1, 1 }, { 2, 3, 3, 1, 2 },
				{ 2, 3, 3, 1, 3 }, { 2, 3, 3, 2, 0 }, { 2, 3, 3, 2, 1 }, { 2, 3, 3, 2, 2 }, { 2, 3, 3, 2, 3 },
				{ 2, 3, 3, 3, 0 }, { 2, 3, 3, 3, 1 }, { 2, 3, 3, 3, 2 }, { 2, 3, 3, 3, 3 }, { 3, 0, 0, 0, 0 },
				{ 3, 0, 0, 0, 1 }, { 3, 0, 0, 0, 2 }, { 3, 0, 0, 0, 3 }, { 3, 0, 0, 1, 0 }, { 3, 0, 0, 1, 1 },
				{ 3, 0, 0, 1, 2 }, { 3, 0, 0, 1, 3 }, { 3, 0, 0, 2, 0 }, { 3, 0, 0, 2, 1 }, { 3, 0, 0, 2, 2 },
				{ 3, 0, 0, 2, 3 }, { 3, 0, 0, 3, 0 }, { 3, 0, 0, 3, 1 }, { 3, 0, 0, 3, 2 }, { 3, 0, 0, 3, 3 },
				{ 3, 0, 1, 0, 0 }, { 3, 0, 1, 0, 1 }, { 3, 0, 1, 0, 2 }, { 3, 0, 1, 0, 3 }, { 3, 0, 1, 1, 0 },
				{ 3, 0, 1, 1, 1 }, { 3, 0, 1, 1, 2 }, { 3, 0, 1, 1, 3 }, { 3, 0, 1, 2, 0 }, { 3, 0, 1, 2, 1 },
				{ 3, 0, 1, 2, 2 }, { 3, 0, 1, 2, 3 }, { 3, 0, 1, 3, 0 }, { 3, 0, 1, 3, 1 }, { 3, 0, 1, 3, 2 },
				{ 3, 0, 1, 3, 3 }, { 3, 0, 2, 0, 0 }, { 3, 0, 2, 0, 1 }, { 3, 0, 2, 0, 2 }, { 3, 0, 2, 0, 3 },
				{ 3, 0, 2, 1, 0 }, { 3, 0, 2, 1, 1 }, { 3, 0, 2, 1, 2 }, { 3, 0, 2, 1, 3 }, { 3, 0, 2, 2, 0 },
				{ 3, 0, 2, 2, 1 }, { 3, 0, 2, 2, 2 }, { 3, 0, 2, 2, 3 }, { 3, 0, 2, 3, 0 }, { 3, 0, 2, 3, 1 },
				{ 3, 0, 2, 3, 2 }, { 3, 0, 2, 3, 3 }, { 3, 0, 3, 0, 0 }, { 3, 0, 3, 0, 1 }, { 3, 0, 3, 0, 2 },
				{ 3, 0, 3, 0, 3 }, { 3, 0, 3, 1, 0 }, { 3, 0, 3, 1, 1 }, { 3, 0, 3, 1, 2 }, { 3, 0, 3, 1, 3 },
				{ 3, 0, 3, 2, 0 }, { 3, 0, 3, 2, 1 }, { 3, 0, 3, 2, 2 }, { 3, 0, 3, 2, 3 }, { 3, 0, 3, 3, 0 },
				{ 3, 0, 3, 3, 1 }, { 3, 0, 3, 3, 2 }, { 3, 0, 3, 3, 3 }, { 3, 1, 0, 0, 0 }, { 3, 1, 0, 0, 1 },
				{ 3, 1, 0, 0, 2 }, { 3, 1, 0, 0, 3 }, { 3, 1, 0, 1, 0 }, { 3, 1, 0, 1, 1 }, { 3, 1, 0, 1, 2 },
				{ 3, 1, 0, 1, 3 }, { 3, 1, 0, 2, 0 }, { 3, 1, 0, 2, 1 }, { 3, 1, 0, 2, 2 }, { 3, 1, 0, 2, 3 },
				{ 3, 1, 0, 3, 0 }, { 3, 1, 0, 3, 1 }, { 3, 1, 0, 3, 2 }, { 3, 1, 0, 3, 3 }, { 3, 1, 1, 0, 0 },
				{ 3, 1, 1, 0, 1 }, { 3, 1, 1, 0, 2 }, { 3, 1, 1, 0, 3 }, { 3, 1, 1, 1, 0 }, { 3, 1, 1, 1, 1 },
				{ 3, 1, 1, 1, 2 }, { 3, 1, 1, 1, 3 }, { 3, 1, 1, 2, 0 }, { 3, 1, 1, 2, 1 }, { 3, 1, 1, 2, 2 },
				{ 3, 1, 1, 2, 3 }, { 3, 1, 1, 3, 0 }, { 3, 1, 1, 3, 1 }, { 3, 1, 1, 3, 2 }, { 3, 1, 1, 3, 3 },
				{ 3, 1, 2, 0, 0 }, { 3, 1, 2, 0, 1 }, { 3, 1, 2, 0, 2 }, { 3, 1, 2, 0, 3 }, { 3, 1, 2, 1, 0 },
				{ 3, 1, 2, 1, 1 }, { 3, 1, 2, 1, 2 }, { 3, 1, 2, 1, 3 }, { 3, 1, 2, 2, 0 }, { 3, 1, 2, 2, 1 },
				{ 3, 1, 2, 2, 2 }, { 3, 1, 2, 2, 3 }, { 3, 1, 2, 3, 0 }, { 3, 1, 2, 3, 1 }, { 3, 1, 2, 3, 2 },
				{ 3, 1, 2, 3, 3 }, { 3, 1, 3, 0, 0 }, { 3, 1, 3, 0, 1 }, { 3, 1, 3, 0, 2 }, { 3, 1, 3, 0, 3 },
				{ 3, 1, 3, 1, 0 }, { 3, 1, 3, 1, 1 }, { 3, 1, 3, 1, 2 }, { 3, 1, 3, 1, 3 }, { 3, 1, 3, 2, 0 },
				{ 3, 1, 3, 2, 1 }, { 3, 1, 3, 2, 2 }, { 3, 1, 3, 2, 3 }, { 3, 1, 3, 3, 0 }, { 3, 1, 3, 3, 1 },
				{ 3, 1, 3, 3, 2 }, { 3, 1, 3, 3, 3 }, { 3, 2, 0, 0, 0 }, { 3, 2, 0, 0, 1 }, { 3, 2, 0, 0, 2 },
				{ 3, 2, 0, 0, 3 }, { 3, 2, 0, 1, 0 }, { 3, 2, 0, 1, 1 }, { 3, 2, 0, 1, 2 }, { 3, 2, 0, 1, 3 },
				{ 3, 2, 0, 2, 0 }, { 3, 2, 0, 2, 1 }, { 3, 2, 0, 2, 2 }, { 3, 2, 0, 2, 3 }, { 3, 2, 0, 3, 0 },
				{ 3, 2, 0, 3, 1 }, { 3, 2, 0, 3, 2 }, { 3, 2, 0, 3, 3 }, { 3, 2, 1, 0, 0 }, { 3, 2, 1, 0, 1 },
				{ 3, 2, 1, 0, 2 }, { 3, 2, 1, 0, 3 }, { 3, 2, 1, 1, 0 }, { 3, 2, 1, 1, 1 }, { 3, 2, 1, 1, 2 },
				{ 3, 2, 1, 1, 3 }, { 3, 2, 1, 2, 0 }, { 3, 2, 1, 2, 1 }, { 3, 2, 1, 2, 2 }, { 3, 2, 1, 2, 3 },
				{ 3, 2, 1, 3, 0 }, { 3, 2, 1, 3, 1 }, { 3, 2, 1, 3, 2 }, { 3, 2, 1, 3, 3 }, { 3, 2, 2, 0, 0 },
				{ 3, 2, 2, 0, 1 }, { 3, 2, 2, 0, 2 }, { 3, 2, 2, 0, 3 }, { 3, 2, 2, 1, 0 }, { 3, 2, 2, 1, 1 },
				{ 3, 2, 2, 1, 2 }, { 3, 2, 2, 1, 3 }, { 3, 2, 2, 2, 0 }, { 3, 2, 2, 2, 1 }, { 3, 2, 2, 2, 2 },
				{ 3, 2, 2, 2, 3 }, { 3, 2, 2, 3, 0 }, { 3, 2, 2, 3, 1 }, { 3, 2, 2, 3, 2 }, { 3, 2, 2, 3, 3 },
				{ 3, 2, 3, 0, 0 }, { 3, 2, 3, 0, 1 }, { 3, 2, 3, 0, 2 }, { 3, 2, 3, 0, 3 }, { 3, 2, 3, 1, 0 },
				{ 3, 2, 3, 1, 1 }, { 3, 2, 3, 1, 2 }, { 3, 2, 3, 1, 3 }, { 3, 2, 3, 2, 0 }, { 3, 2, 3, 2, 1 },
				{ 3, 2, 3, 2, 2 }, { 3, 2, 3, 2, 3 }, { 3, 2, 3, 3, 0 }, { 3, 2, 3, 3, 1 }, { 3, 2, 3, 3, 2 },
				{ 3, 2, 3, 3, 3 }, { 3, 3, 0, 0, 0 }, { 3, 3, 0, 0, 1 }, { 3, 3, 0, 0, 2 }, { 3, 3, 0, 0, 3 },
				{ 3, 3, 0, 1, 0 }, { 3, 3, 0, 1, 1 }, { 3, 3, 0, 1, 2 }, { 3, 3, 0, 1, 3 }, { 3, 3, 0, 2, 0 },
				{ 3, 3, 0, 2, 1 }, { 3, 3, 0, 2, 2 }, { 3, 3, 0, 2, 3 }, { 3, 3, 0, 3, 0 }, { 3, 3, 0, 3, 1 },
				{ 3, 3, 0, 3, 2 }, { 3, 3, 0, 3, 3 }, { 3, 3, 1, 0, 0 }, { 3, 3, 1, 0, 1 }, { 3, 3, 1, 0, 2 },
				{ 3, 3, 1, 0, 3 }, { 3, 3, 1, 1, 0 }, { 3, 3, 1, 1, 1 }, { 3, 3, 1, 1, 2 }, { 3, 3, 1, 1, 3 },
				{ 3, 3, 1, 2, 0 }, { 3, 3, 1, 2, 1 }, { 3, 3, 1, 2, 2 }, { 3, 3, 1, 2, 3 }, { 3, 3, 1, 3, 0 },
				{ 3, 3, 1, 3, 1 }, { 3, 3, 1, 3, 2 }, { 3, 3, 1, 3, 3 }, { 3, 3, 2, 0, 0 }, { 3, 3, 2, 0, 1 },
				{ 3, 3, 2, 0, 2 }, { 3, 3, 2, 0, 3 }, { 3, 3, 2, 1, 0 }, { 3, 3, 2, 1, 1 }, { 3, 3, 2, 1, 2 },
				{ 3, 3, 2, 1, 3 }, { 3, 3, 2, 2, 0 }, { 3, 3, 2, 2, 1 }, { 3, 3, 2, 2, 2 }, { 3, 3, 2, 2, 3 },
				{ 3, 3, 2, 3, 0 }, { 3, 3, 2, 3, 1 }, { 3, 3, 2, 3, 2 }, { 3, 3, 2, 3, 3 }, { 3, 3, 3, 0, 0 },
				{ 3, 3, 3, 0, 1 }, { 3, 3, 3, 0, 2 }, { 3, 3, 3, 0, 3 }, { 3, 3, 3, 1, 0 }, { 3, 3, 3, 1, 1 },
				{ 3, 3, 3, 1, 2 }, { 3, 3, 3, 1, 3 }, { 3, 3, 3, 2, 0 }, { 3, 3, 3, 2, 1 }, { 3, 3, 3, 2, 2 },
				{ 3, 3, 3, 2, 3 }, { 3, 3, 3, 3, 0 }, { 3, 3, 3, 3, 1 }, { 3, 3, 3, 3, 2 }, { 3, 3, 3, 3, 3 } };

		// 0 : 오른쪽, 1 : 왼쪽, 2 : 위쪽 3 : 아래쪽
		for (int i = 0; i < arr2.length; i++) {
			// arr 카피
			int[][] temp = new int[N][N];
			for (int j = 0; j < N; j++) {
				temp[j] = arr[j].clone();
			}
			// 상하좌우 체크
			for (int j = 0; j < 5; j++) {
				int dir = arr2[i][j];
				switch (dir) {
				case 0:
					up(temp);
					break;
				case 1:
					down(temp);
					break;
				case 2:
					left(temp);
					break;
				case 3:
					right(temp);
					break;
				}
				int val = 0;
				for (int r = 0; r < N; r++) {
					for (int c = 0; c < N; c++) {
						val = Math.max(val, temp[r][c]);
					}
				}
				answer = Math.max(val, answer);
			}
		}
		System.out.println(answer);
	}

	public static void perm(int cnt) {
		// 기저조건
		if (cnt == 5) {
			System.out.print("{");
			for (int i = 0; i < 4; i++) {
				System.out.print(numbers[i] + ",");
			}
			System.out.print(numbers[4]);
			System.out.print("},");
			return;
		}

		for (int i = 0; i < 4; i++) {
			numbers[cnt] = i;
			perm(cnt + 1);
		}

	}

	public static void up(int[][] map) {
		boolean[][] visited = new boolean[N][N];
		for (int j = 0; j < N; j++) {
			while (true) {
				int cnt = 0;
				int x = 0;
				int nx = x + dx[1];
				while (true) {
					if (nx >= N)
						break;
					if (map[nx][j] != 0 && !visited[x][j] && !visited[nx][j] && map[nx][j] == map[x][j]) {

						map[x][j] += map[nx][j];
						visited[x][j] = true;
						map[nx][j] = 0;
						cnt++;
					} else if (map[x][j] == 0 && map[nx][j] != 0) {
						map[x][j] = map[nx][j];
						map[nx][j] = 0;
						visited[x][j] = visited[nx][j];
						visited[nx][j] = false;
						cnt++;
					}
					x = nx;
					nx += dx[1];
				}
				if (cnt == 0) {
					break;
				}
			}

		}

	}

	public static void down(int[][] map) {
		boolean[][] visited = new boolean[N][N];
		for (int j = 0; j < N; j++) {
			while (true) {
				int cnt = 0;
				int x = N - 1;
				int nx = x + dx[0];
				while (true) {
					if (nx < 0)
						break;
					if (map[nx][j] != 0 && !visited[x][j] && !visited[nx][j] && map[nx][j] == map[x][j]) {
						map[x][j] += map[nx][j];
						visited[x][j] = true;
						map[nx][j] = 0;
						cnt++;
					} else if (map[x][j] == 0 && map[nx][j] != 0) {
						map[x][j] = map[nx][j];
						map[nx][j] = 0;
						visited[x][j] = visited[nx][j];
						visited[nx][j] = false;
						cnt++;
					}
					x = nx;
					nx += dx[0];
				}
				if (cnt == 0) {
					break;
				}
			}

		}
	}

	public static void left(int[][] map) {
		boolean[][] visited = new boolean[N][N];
		for (int i = 0; i < N; i++) {

			while (true) {
				int cnt = 0;
				int y = 0;
				int ny = y + dy[3];
				while (true) {
					if (ny >= N)
						break;
					if (map[i][ny] != 0 && !visited[i][y] && !visited[i][ny] && map[i][y] == map[i][ny]) {
						map[i][y] += map[i][ny];
						visited[i][y] = true;
						map[i][ny] = 0;
						cnt++;
					} else if (map[i][y] == 0 && map[i][ny] != 0) {
						map[i][y] = map[i][ny];
						map[i][ny] = 0;
						visited[i][y] = visited[i][ny];
						visited[i][ny] = false;
						cnt++;
					}
					y = ny;
					ny += dy[3];

				}
				if (cnt == 0) {
					break;
				}

			}

		}
	}

	public static void right(int[][] map) {
		boolean[][] visited = new boolean[N][N];
		for (int i = 0; i < N; i++) {

			while (true) {
				int cnt = 0;
				int y = N - 1;
				int ny = y + dy[2];
				while (true) {
					if (ny < 0)
						break;
					if (map[i][ny] != 0 && !visited[i][y] && !visited[i][ny] && map[i][y] == map[i][ny]) {
						map[i][y] += map[i][ny];
						visited[i][y] = true;
						map[i][ny] = 0;
						cnt++;
					} else if (map[i][y] == 0 && map[i][ny] != 0) {
						map[i][y] = map[i][ny];
						map[i][ny] = 0;
						visited[i][y] = visited[i][ny];
						visited[i][ny] = false;
						cnt++;
					}
					y = ny;
					ny += dy[2];

				}
				if (cnt == 0) {
					break;
				}

			}

		}
	}

}