Submission #1412940


Source Code Expand

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = Integer.parseInt(scan.nextLine());
		int [] load = new int [n];
		String temp_input = scan.nextLine();
		for(int i = 0; i < n; i++){
			switch( temp_input.charAt(i) ){
			case '.' : load[i] = 0; break;
			case 'X' : load[i] = 1; break;
			default: break;
			}
		}
		
		// initialize array for memo
		// -1 means haven't searched yet
		int [][] count_memo = new int [n][2];
		for(int i = 0; i < n; i++){
			count_memo[i][1] = -1;
		}
		
		System.out.println(searchCount(load, 0, count_memo));
	}
	
	public static int searchCount(int [] load, int i, int [][] memo){
		if( i == load.length - 1 ){ // goal
			return 0;
		} else {
			//one step
			if( memo[i + 1][1] == -1 ){ //haven't searched yet
				memo[i+1][1] = searchCount(load, i+1, memo);
			}
			int min = memo[i+1][1];
			
			//two step
			if( i + 2 < load.length ){ // when i + 2 is vaild
				if( memo[i+2][1] == -1 ){  //haven't searched yet
					memo[i+2][1] = searchCount(load, i+2, memo);
				}
				if(min > memo[i+2][1]){
					min = memo[i+2][1];
				}
			}
			
			//three step
			if( i + 3 < load.length ){ //when i + 3 is valid
				if( memo[i+3][1] == -1 ){  //haven't searched yet
					memo[i+3][1] = searchCount(load, i+3, memo);
				}
				if(min > memo[i+3][1]){
					min = memo[i+3][1];
				}
			}
			
			if( load[i] == 1 ){
				return 1 + min;
			} else {
				return min;
			}
		}
	}

}

Submission Info

Submission Time
Task B - 雨上がり
User Climber22
Language Java8 (OpenJDK 1.8.0)
Score 50
Code Size 1563 Byte
Status AC
Exec Time 100 ms
Memory 21844 KB

Judge Result

Set Name All
Score / Max Score 50 / 50
Status
AC × 43
Set Name Test Cases
All case_000.txt, case_001.txt, case_002.txt, case_003.txt, case_004.txt, case_005.txt, case_006.txt, case_007.txt, case_008.txt, case_009.txt, case_010.txt, case_011.txt, case_012.txt, case_013.txt, case_014.txt, case_015.txt, case_016.txt, case_017.txt, case_018.txt, case_019.txt, case_020.txt, case_021.txt, case_022.txt, case_023.txt, case_024.txt, case_025.txt, case_026.txt, case_027.txt, case_028.txt, case_029.txt, case_030.txt, case_031.txt, case_032.txt, case_033.txt, case_034.txt, case_035.txt, case_036.txt, case_037.txt, case_038.txt, case_039.txt, case_040.txt, case_041.txt, case_042.txt
Case Name Status Exec Time Memory
case_000.txt AC 91 ms 21588 KB
case_001.txt AC 90 ms 19796 KB
case_002.txt AC 90 ms 19412 KB
case_003.txt AC 90 ms 21716 KB
case_004.txt AC 91 ms 21588 KB
case_005.txt AC 89 ms 18768 KB
case_006.txt AC 90 ms 21844 KB
case_007.txt AC 90 ms 21716 KB
case_008.txt AC 97 ms 19284 KB
case_009.txt AC 90 ms 18644 KB
case_010.txt AC 90 ms 18516 KB
case_011.txt AC 95 ms 18644 KB
case_012.txt AC 96 ms 21204 KB
case_013.txt AC 88 ms 18640 KB
case_014.txt AC 89 ms 18640 KB
case_015.txt AC 88 ms 21588 KB
case_016.txt AC 88 ms 21844 KB
case_017.txt AC 94 ms 19284 KB
case_018.txt AC 89 ms 19284 KB
case_019.txt AC 90 ms 19796 KB
case_020.txt AC 88 ms 21844 KB
case_021.txt AC 88 ms 20948 KB
case_022.txt AC 94 ms 21716 KB
case_023.txt AC 100 ms 20052 KB
case_024.txt AC 94 ms 19924 KB
case_025.txt AC 88 ms 21716 KB
case_026.txt AC 89 ms 18900 KB
case_027.txt AC 88 ms 20564 KB
case_028.txt AC 91 ms 19668 KB
case_029.txt AC 87 ms 21844 KB
case_030.txt AC 89 ms 18516 KB
case_031.txt AC 88 ms 19796 KB
case_032.txt AC 87 ms 21844 KB
case_033.txt AC 88 ms 21844 KB
case_034.txt AC 90 ms 16852 KB
case_035.txt AC 89 ms 16852 KB
case_036.txt AC 88 ms 18644 KB
case_037.txt AC 88 ms 19412 KB
case_038.txt AC 89 ms 19796 KB
case_039.txt AC 93 ms 19796 KB
case_040.txt AC 88 ms 21844 KB
case_041.txt AC 88 ms 19412 KB
case_042.txt AC 88 ms 21844 KB