记录编号 170566 评测结果 AAWAAAAAAWWWA
题目名称 加利福尼亚旅店 最终得分 69
用户昵称 Gravatarmikumikumi 是否通过 未通过
代码语言 C++ 运行时间 0.013 s
提交时间 2015-07-14 14:03:37 内存使用 0.31 MiB
显示代码纯文本
  1. #include<cstdio>
  2. #include<cstring>
  3. #include<iostream>
  4. using namespace std;
  5. char D[51],b[51];
  6. int n;
  7. int ans=0;
  8. bool work(int x,int y)
  9. {
  10. for(int i=x;i<strlen(D);i++)
  11. {
  12. if(D[i]=='*')
  13. {
  14. if(i==strlen(D)-1) return 1;
  15. for(int j=i;j<strlen(D);j++)
  16. if(work(i+1,j)==1) return 1;
  17. }
  18. else
  19. {
  20. if(i==strlen(D)-1&&y+i!=strlen(b)-1) return 0;
  21. if(D[i]=='?') continue;
  22. if(D[i]!=b[y+i]) return 0;
  23. }
  24. }
  25. return 1;
  26. }
  27. int main()
  28. {
  29. freopen("hotela.in","r",stdin);
  30. freopen("hotela.out","w",stdout);
  31. while(scanf("%s",D)==true)
  32. {
  33. if((D[0]>='a'&&D[0]<='z')||D[0]=='?'||D[0]=='*')
  34. {
  35. //printf("%s\n",D);
  36. scanf("%d",&n);
  37. //printf("%d",n);
  38. ans=0;
  39. for(int i=1;i<=n;i++)
  40. {
  41. scanf("%s",b);
  42. //printf("%s\n",b);
  43. if(work(0,0)==1) ans++;
  44. }
  45. printf("%d\n",ans);
  46. }
  47. else break;
  48. }
  49. return 0;
  50. }