Submission #169666


Source Code Expand

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.math.BigInteger;
 
import java.util.*;
import java.util.Map.Entry;
 
public class Main {
	
	public static final int[][] move_dir = new int[][]{{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
	
	public static boolean is_ok(int x, int y, final int sx, final int sy, int ex, int ey){
		if(x < sx || y < sy || x > ex || y > ey){
			return false;
		}else{
			return true;
		}
	}
	
	public static long dfs(final int deep, final int N, final int sx, final int sy, final int ex, final int ey, LinkedList<Integer> nums, boolean[] using, int[] xs, int[] ys){
		LinkedList<Integer> nexts = new LinkedList<Integer>(nums);
		for(Iterator<Integer> iter = nexts.iterator(); iter.hasNext(); ){
			final int next = iter.next();
			final int x = xs[next];
			final int y = ys[next];
			
			if(!is_ok(x, y, sx, sy, ex, ey)){
				iter.remove();
			}
		}
		
		long max = 0;
		
		for(int next : nexts){
			final int x = xs[next];
			final int y = ys[next];
			
			using[next] = true;
			final long current = (ex - sx + 1) + (ey - sy + 1) - 1;
			//System.out.println(current + " " + sx + " " + sy + " " + ex + " " + ey + " " + x + " " + y);
			
			long ret = 0;
			
			if(sx <= x - 1 && sy <= y - 1){
				ret += dfs(deep + 1, N,    sx,    sy, x - 1, y - 1, nexts, using, xs, ys);
			}
			if(x + 1 <= ex && sy <= y - 1){
				ret += dfs(deep + 1, N, x + 1,    sy,    ex, y - 1, nexts, using, xs, ys);
			}
			if(sx <= x + 1 && y + 1 <= ey){
				ret += dfs(deep + 1, N,    sx, y + 1, x - 1,    ey, nexts, using, xs, ys);
			}
			if(x + 1 <= ex && y + 1 <= ey){
				ret += dfs(deep + 1, N, x + 1, y + 1,    ex,    ey, nexts, using, xs, ys);
			}
			
			max = Math.max(max, current + ret);
			
			using[next] = false;
		}
		
		//System.out.println(deep + " " + max);
		return max;
	}
	
	public static void main(String[] args) throws IOException{
		Scanner sc = new Scanner(System.in);
		
		final int W = sc.nextInt();
		final int H = sc.nextInt();
		
		final int N = sc.nextInt();
		
		int[] xs = new int[N];
		int[] ys = new int[N];
		LinkedList<Integer> nexts = new LinkedList<Integer>();
		for(int i = 0; i < N; i++){
			xs[i] = sc.nextInt() - 1;
			ys[i] = sc.nextInt() - 1;
			nexts.add(i);
		}
		
		System.out.println(dfs(0, N, 0, 0, W - 1, H - 1, nexts, new boolean[N], xs, ys));
	}
	
	public static class Scanner {
		
		private BufferedReader br;
		private StringTokenizer tok;
		
		public Scanner(InputStream is) throws IOException{
			br = new BufferedReader(new InputStreamReader(is));
			getLine();
		}
		
		private void getLine() throws IOException{
			while(tok == null || !tok.hasMoreTokens()){
				tok = new StringTokenizer(br.readLine());
			}
		}
		
		private boolean hasNext(){
			return tok.hasMoreTokens();
		}
		
		public String next() throws IOException{
			if(hasNext()){
				return tok.nextToken();
			}else{
				getLine();
				return tok.nextToken();
			}
		}
		
		public int nextInt() throws IOException{
			if(hasNext()){
				return Integer.parseInt(tok.nextToken());
			}else{
				getLine();
				return Integer.parseInt(tok.nextToken());
			}
		}
		
		public long nextLong() throws IOException{
			if(hasNext()){
				return Long.parseLong(tok.nextToken());
			}else{
				getLine();
				return Long.parseLong(tok.nextToken());
			}
		}
		
		public double nextDouble() throws IOException{
			if(hasNext()){
				return Double.parseDouble(tok.nextToken());
			}else{
				getLine();
				return Double.parseDouble(tok.nextToken());
			}
		}
	}
}

Submission Info

Submission Time
Task D - 金塊ゲーム
User mondatto
Language Java (OpenJDK 1.7.0)
Score 80
Code Size 3704 Byte
Status TLE
Exec Time 4043 ms
Memory 32448 KB

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3
Score / Max Score 0 / 0 80 / 80 0 / 19 0 / 1
Status
AC × 3
AC × 25
AC × 44
TLE × 6
AC × 63
TLE × 12
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
Subtask1 subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt
Subtask2 subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt
Subtask3 subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask3_01.txt, subtask3_02.txt, subtask3_03.txt, subtask3_04.txt, subtask3_05.txt, subtask3_06.txt, subtask3_07.txt, subtask3_08.txt, subtask3_09.txt, subtask3_10.txt, subtask3_11.txt, subtask3_12.txt, subtask3_13.txt, subtask3_14.txt, subtask3_15.txt, subtask3_16.txt, subtask3_17.txt, subtask3_18.txt, subtask3_19.txt, subtask3_20.txt, subtask3_21.txt, subtask3_22.txt, subtask3_23.txt, subtask3_24.txt, subtask3_25.txt
Case Name Status Exec Time Memory
sample_01.txt AC 454 ms 20776 KB
sample_02.txt AC 441 ms 20780 KB
sample_03.txt AC 437 ms 20912 KB
subtask1_01.txt AC 409 ms 20652 KB
subtask1_02.txt AC 409 ms 20784 KB
subtask1_03.txt AC 438 ms 20908 KB
subtask1_04.txt AC 449 ms 21676 KB
subtask1_05.txt AC 421 ms 20788 KB
subtask1_06.txt AC 427 ms 20784 KB
subtask1_07.txt AC 423 ms 20788 KB
subtask1_08.txt AC 428 ms 20788 KB
subtask1_09.txt AC 420 ms 20776 KB
subtask1_10.txt AC 412 ms 20780 KB
subtask1_11.txt AC 419 ms 20776 KB
subtask1_12.txt AC 421 ms 20780 KB
subtask1_13.txt AC 420 ms 20776 KB
subtask1_14.txt AC 426 ms 20916 KB
subtask1_15.txt AC 457 ms 21680 KB
subtask1_16.txt AC 445 ms 21428 KB
subtask1_17.txt AC 464 ms 21556 KB
subtask1_18.txt AC 436 ms 20784 KB
subtask1_19.txt AC 437 ms 20900 KB
subtask1_20.txt AC 425 ms 20900 KB
subtask1_21.txt AC 448 ms 21348 KB
subtask1_22.txt AC 448 ms 21808 KB
subtask1_23.txt AC 466 ms 22928 KB
subtask1_24.txt AC 439 ms 20908 KB
subtask1_25.txt AC 456 ms 21684 KB
subtask2_01.txt AC 535 ms 30640 KB
subtask2_02.txt AC 537 ms 31392 KB
subtask2_03.txt AC 644 ms 31808 KB
subtask2_04.txt AC 606 ms 31548 KB
subtask2_05.txt AC 1220 ms 32036 KB
subtask2_06.txt AC 1074 ms 32152 KB
subtask2_07.txt AC 1184 ms 32052 KB
subtask2_08.txt AC 1065 ms 32064 KB
subtask2_09.txt AC 3165 ms 32184 KB
subtask2_10.txt TLE 4043 ms 32136 KB
subtask2_11.txt AC 1747 ms 31940 KB
subtask2_12.txt TLE 4040 ms 32364 KB
subtask2_13.txt AC 1521 ms 32068 KB
subtask2_14.txt AC 1230 ms 32068 KB
subtask2_15.txt AC 502 ms 25352 KB
subtask2_16.txt AC 858 ms 31884 KB
subtask2_17.txt TLE 4042 ms 32396 KB
subtask2_18.txt AC 3180 ms 32100 KB
subtask2_19.txt AC 2567 ms 32068 KB
subtask2_20.txt AC 2255 ms 31852 KB
subtask2_21.txt AC 3655 ms 31800 KB
subtask2_22.txt TLE 4041 ms 31840 KB
subtask2_23.txt TLE 4040 ms 32184 KB
subtask2_24.txt AC 2141 ms 32004 KB
subtask2_25.txt TLE 4040 ms 32448 KB
subtask3_01.txt AC 424 ms 20780 KB
subtask3_02.txt AC 564 ms 31688 KB
subtask3_03.txt AC 519 ms 30484 KB
subtask3_04.txt AC 552 ms 31700 KB
subtask3_05.txt AC 686 ms 31932 KB
subtask3_06.txt AC 736 ms 32068 KB
subtask3_07.txt AC 609 ms 31804 KB
subtask3_08.txt AC 1165 ms 31980 KB
subtask3_09.txt AC 1750 ms 31920 KB
subtask3_10.txt AC 3984 ms 31788 KB
subtask3_11.txt AC 1719 ms 31920 KB
subtask3_12.txt TLE 4041 ms 32244 KB
subtask3_13.txt TLE 4041 ms 32352 KB
subtask3_14.txt AC 2372 ms 32196 KB
subtask3_15.txt AC 3275 ms 32024 KB
subtask3_16.txt AC 2082 ms 32068 KB
subtask3_17.txt TLE 4039 ms 32232 KB
subtask3_18.txt AC 683 ms 31868 KB
subtask3_19.txt AC 1918 ms 31996 KB
subtask3_20.txt AC 981 ms 31956 KB
subtask3_21.txt TLE 4040 ms 32136 KB
subtask3_22.txt AC 3785 ms 31980 KB
subtask3_23.txt TLE 4038 ms 32288 KB
subtask3_24.txt TLE 4040 ms 32304 KB
subtask3_25.txt AC 1651 ms 32072 KB