PKU 2973 Scrabble

http://poj.org/problem?id=2973
n個の単語が与えられる。この単語のうち空白('_')と指定されたアルファベットだけで構成できるものの数を答えるというような問題。
ただし、空白はどのようなアルファベットとしても扱えるものとする。

やるだけ。

string in[1000];
string scr;

int app[200];

main(){
  int n;
  while(cin>>n,n){
    rep(i,n)cin>>in[i];
    cin>>scr;
    int ans=0;
    rep(i,n){
      memset(app,0,sizeof(app));
      rep(j,SZ(scr))app[scr[j]]++;
      bool ok=true;
      rep(j,SZ(in[i])){
        if(app[in[i][j]])--app[in[i][j]];
        else if(app['_'])--app['_'];
        else{
          ok=false;
          break;
        }
      }
      ans+=ok;
    }
    cout<<ans<<endl;
  }
}