Submission #337883


Source Code Expand

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.Set;
import java.util.SortedMap;
import java.util.StringTokenizer;
import java.util.TreeMap;
import java.util.TreeSet;

public class Main {
	
	public static boolean dfs(final int n, final int deep, final int using, final int index, String[] inputs, boolean[] used){
		if(deep >= n){
			return true;
		}
		
		for(int next = 0; next < n; next++){
			final int next_index = index + 1;

			if(used[next]){
				continue;
			}
			
			//System.out.println(deep + " : " + inputs[using] + "[" + index + "] " + " -> " + inputs[next] + "[" + next_index + "]");
			if(inputs[next].length() <= next_index){
				continue;
			}else if(inputs[next].charAt(next_index) != inputs[using].charAt(index)){
				continue;
			}
			
			used[next] = true;
			if(dfs(n, deep + 1, next, next_index, inputs, used)){
				return true;
			}
			used[next] = false;
		}
		
		return false;
	}
	
	public static void main(String[] args) throws IOException {
		Scanner sc = new Scanner(System.in);
	
		final int n = sc.nextInt();
		String[] inputs = new String[n];
		for(int i = 0; i < n; i++){
			inputs[i] = sc.next();
		}
		
		boolean[] used = new boolean[n];
		for(int last = 0; last < n; last++){
			final int size = inputs[last].length();
			used[last] = true;
			
			for(int index = 0; index < size; index++){
				
				if(dfs(n, 1, last, index, inputs, used)){
					System.out.println("YES");
					return;
				}
			}
			
			used[last] = false;
		}
		
		System.out.println("NO");
	}

	public static class Scanner {
		private BufferedReader br;
		private StringTokenizer tok;

		public Scanner(InputStream is) throws IOException {
			br = new BufferedReader(new InputStreamReader(is));
		}

		private void getLine() throws IOException {
			while (!hasNext()) {
				tok = new StringTokenizer(br.readLine());
			}
		}

		private boolean hasNext() {
			return tok != null && tok.hasMoreTokens();
		}

		public String next() throws IOException {
			getLine();
			return tok.nextToken();
		}

		public int nextInt() throws IOException {
			return Integer.parseInt(next());
		}

		public long nextLong() throws IOException {
			return Long.parseLong(next());
		}

		public void close() throws IOException {
			br.close();
		}
	}

}

Submission Info

Submission Time
Task B - コメント
User mondatto
Language Java (OpenJDK 1.7.0)
Score 0
Code Size 2578 Byte
Status TLE
Exec Time 2042 ms
Memory 24804 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 0 / 30 0 / 60
Status
AC × 2
AC × 12
TLE × 6
AC × 17
TLE × 27
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
Subtask1 sample_01.txt, sample_02.txt, 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
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, 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, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt
Case Name Status Exec Time Memory
sample_01.txt AC 316 ms 20640 KB
sample_02.txt AC 313 ms 20588 KB
subtask1_01.txt AC 308 ms 20580 KB
subtask1_02.txt TLE 2040 ms 22360 KB
subtask1_03.txt TLE 2039 ms 22240 KB
subtask1_04.txt TLE 2038 ms 22276 KB
subtask1_05.txt AC 286 ms 20540 KB
subtask1_06.txt AC 313 ms 22104 KB
subtask1_07.txt AC 297 ms 20984 KB
subtask1_08.txt AC 304 ms 21508 KB
subtask1_09.txt AC 287 ms 20588 KB
subtask1_10.txt AC 1873 ms 22016 KB
subtask1_11.txt TLE 2040 ms 22292 KB
subtask1_12.txt AC 323 ms 21988 KB
subtask1_13.txt TLE 2039 ms 22416 KB
subtask1_14.txt AC 296 ms 20520 KB
subtask1_15.txt AC 324 ms 21820 KB
subtask1_16.txt TLE 2040 ms 22332 KB
subtask2_01.txt TLE 2039 ms 24516 KB
subtask2_02.txt TLE 2039 ms 24140 KB
subtask2_03.txt AC 339 ms 23372 KB
subtask2_04.txt AC 1547 ms 24040 KB
subtask2_05.txt AC 335 ms 23700 KB
subtask2_06.txt AC 380 ms 24544 KB
subtask2_07.txt AC 380 ms 24412 KB
subtask2_08.txt TLE 2039 ms 24212 KB
subtask2_09.txt TLE 2038 ms 24256 KB
subtask2_10.txt AC 620 ms 24156 KB
subtask2_11.txt TLE 2039 ms 24232 KB
subtask2_12.txt TLE 2038 ms 24164 KB
subtask2_13.txt TLE 2039 ms 24664 KB
subtask2_14.txt TLE 2039 ms 24328 KB
subtask2_15.txt TLE 2039 ms 24588 KB
subtask2_16.txt TLE 2038 ms 24804 KB
subtask2_17.txt AC 1390 ms 24136 KB
subtask2_18.txt TLE 2037 ms 24592 KB
subtask2_19.txt TLE 2042 ms 24680 KB
subtask2_20.txt TLE 2038 ms 24116 KB
subtask2_21.txt TLE 2039 ms 24484 KB
subtask2_22.txt TLE 2039 ms 24456 KB
subtask2_23.txt TLE 2039 ms 24308 KB
subtask2_24.txt TLE 2038 ms 24272 KB
subtask2_25.txt TLE 2039 ms 24588 KB
subtask2_26.txt TLE 2039 ms 24644 KB
subtask2_27.txt TLE 2038 ms 24248 KB
subtask2_28.txt TLE 2041 ms 24468 KB