Pku JudgeOnline

http://acm.pku.edu.cn/JudgeOnline/problem?id=3193

java補正がかかるので,単にソートして二分探索するだけ.

以下ソース

import java.util.*;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int m = sc.nextInt();
		int n = sc.nextInt();
		String pBook[] = new String[m];
		sc.nextLine();
		for(int i=0;i<m;i++){
			pBook[i] = sc.nextLine();
		}
		Arrays.sort(pBook);
		int cnt = 0;
		for(int i=0;i<n;i++){
			String str = sc.nextLine();
			int index = Arrays.binarySearch(pBook, str);
			if(index>=0){
				cnt++;
			}else{
				index = - (index + 1);
				if(index != pBook.length){
					if(pBook[index].startsWith(str))cnt++;
				}
			}
		}
		System.out.println(cnt);
	}
}