PKU1409
気分を変えてJavaで。
543B
import java.util.*; class Main{ Set<String>t; String s,m="22233344455566677778889999",b[]=new String[300]; int l,i,y,c; public static void main(String[]a){ new Main(new Scanner(System.in)); } Main(Scanner r){ for(;(i=r.nextInt())>0;){ t=new TreeSet(); for(;i-->0;) t.add(r.next()); s=r.next(); l=s.length(); f(0); System.out.print("--\n"); } } void f(int o){ q:for(String w:t){ y=o+w.length(); if(y<=l){ for(i=o;i<y;++i) if(m.charAt(w.charAt(i-o)-'a')!=s.charAt(i)) continue q; if(y<l){ b[c++]=w; f(y); --c; } else{ for(i=c;i-->0;) w=b[i]+" "+w; System.out.print(w+".\n"); } } } } }