比赛 |
模拟测试2 |
评测结果 |
AAAAAAAAAAAAAAAA |
题目名称 |
翻译玛雅著作 |
最终得分 |
100 |
用户昵称 |
苏轼 |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2010-10-12 19:05:28 |
显示代码纯文本
/*
ID: dxmtb
PROG: 翻译玛雅著作
TIME: 2010.9.28
STATE: Solved
MEMO: 枚举
*/
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXS=3000005;
int g,s;
int t[259],tt[259];
char str[MAXS];
int re;
int main()
{
freopen("writing.in","r",stdin);
freopen("writing.out","w",stdout);
scanf("%d%d",&g,&s);
for(int i=0;i<g;i++)
{
char ch;
do
{
ch=getchar();
}while(!((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')));
t[ch-'A']++;
}
scanf("\n");
scanf("%s",str);
memcpy(tt,t,sizeof(t));
for(int i=0;i<s;i++)
{
int tmp=str[i]-'A';
t[tmp]--;
if (i-g>=0)
t[str[i-g]-'A']++;
if (t[tmp]<0)
continue;
bool flag=true;
for(int i=0;i<26&&flag;i++)
if (t[i]!=0)
flag=false;
if (!flag)
continue;
for(int i='a'-'A';i<='z'-'A'&&flag;i++)
if (t[i]!=0)
flag=false;
if (!flag)
continue;
re++;
}
printf("%d\n",re);
return 0;
}