PersonalCorpus 版 (精华区)
1218838 Big Guava ... 10393 Accepted
0:00.002 64 2002/11/06 04:44:30.632
// Thanks to pamws@HIT
int cmp (const void *a ,const void *b)
{
return strcmp((char *)a, (char *)b);
}
void main()
{
#ifndef ONLINE_JUDGE
freopen("k:\\uva\\i10393","r",stdin);
freopen("k:\\uva\\o10393","w",stdout);
#endif
int i,j,k,t,m,n;
bool ok[256],a5,a6;
char s[1000][51];
while (scanf("%d%d\n",&m,&n)==2) {
memset(ok,1,sizeof(ok)); a5=false; a6=false;
for (i=0;i<m;i++) {
scanf("%d",&k);
if (k==1) {
ok['q']=false;
ok['a']=false;
ok['z']=false;
continue;
}
if (k==2) {
ok['w']=false;
ok['s']=false;
ok['x']=false;
continue;
}
if (k==3) {
ok['e']=false;
ok['d']=false;
ok['c']=false;
continue;
}
if (k==4) {
ok['r']=false;
ok['f']=false;
ok['v']=false;
ok['t']=false;
ok['g']=false;
ok['b']=false;
continue;
}
if (k==5) {
a5=true;
continue;
}
if (k==6) {
a6=true;
continue;
}
if (k==7) {
ok['y']=false;
ok['h']=false;
ok['n']=false;
ok['u']=false;
ok['j']=false;
ok['m']=false;
continue;
}
if (k==8) {
ok['i']=false;
ok['k']=false;
ok[',']=false;
continue;
}
if (k==9) {
ok['o']=false;
ok['l']=false;
ok['.']=false;
continue;
}
if (k==10) {
ok['p']=false;
ok[';']=false;
ok['/']=false;
continue;
}
}
if (a5&&a6) ok[' ']=false;
// Thanks to pamws@HIT
scanf("\n");
// gets(s[0]);
k=0;
for (i=0;i<n;i++) {
gets(s[k]);
for (j=0;s[k][j];j++) if (!ok[s[k][j]]) break;
if (s[k][j]==0) {
if (strlen(s[k])>strlen(s[0])) {
strcpy(s[0],s[k]);
k=1;
} else if (strlen(s[k])==strlen(s[0])) k++;
}
}
qsort(s,k,51,cmp);
if (k==0) j=0; else j=1;
for (i=1;i<k;i++)
if (strcmp(s[i],s[i-1])!=0) {
strcpy(s[j],s[i]);
j++;
}
printf("%d\n",j);
for (i=0;i<j;i++) printf("%s\n",s[i]);
}
}
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:9.673毫秒