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); } }