POJ 1629 Fillword

問題

NxMのグリッドにアルファベットが書かれている。
ここからP個の単語を抜き出す。


単語はグリッド中で縦または横に連続してつながっていなければならない。
P個の単語は全て抜き出す必要がある。
一つのグリッドの文字は一つの単語にしか使えない。


単語を抜き出した後に残る文字を、アルファベット順に答えよ。
解は存在することが保証されている。

制約条件

N,M≦10
P≦100

方針

単語をどう抜き出すかは、残る文字に関係ない。
よって文字の出現数をカウントすればよい。


入力にgetsを使ったらWAが出た。scanfを使ったら通った。
ジャッジ入力中に余分な改行などがあるように思われる。

ソースコード

char in[30],ans[200];
int cnt[26];

int main()
{
	int n,m,p;
	scanf("%d%d%d ",&n,&m,&p);
	rep(i,n){
		scanf("%s",in);
		rep(j,m)cnt[in[j]-'A']++;
	}
	rep(i,p){
		scanf("%s",in);
		for(int j=0;in[j];j++)cnt[in[j]-'A']--;
	}
	int len=0;
	rep(i,26)rep(j,cnt[i])putchar('A'+i);
	puts("");
	
	return 0;
}