记录编号 |
115290 |
评测结果 |
AAAAAAAAAAAAAAAA |
题目名称 |
翻译玛雅著作 |
最终得分 |
100 |
用户昵称 |
任杰 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.435 s |
提交时间 |
2014-08-17 12:03:15 |
内存使用 |
2.99 MiB |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
char strFind[3010];
char str[3000001];
char c[3010];
int m,n;
int match;
bool used[256];
int need[256];
int maxneed[256];
bool cmp(const char *s1,const char *s2)
{
for(int i=0;i<m;i++)
if(s1[i]!=s2[i]) return false;
return true;
}
int main()
{
freopen("writing.in","r",stdin);
freopen("writing.out","w",stdout);
cin>>m>>n;
cin>>strFind>>str;
int cnt=0;
match=0;
for(int i=0;i<m;i++)
{
maxneed[strFind[i]]++;
used[strFind[i]]=true;
}
match=0;
for(int i=0;i<n;i++)
{
if(used[str[i]])
{
need[str[i]]++;
if(need[str[i]]<=maxneed[str[i]])
match++;
}
if(match==m)
{
cnt++;
}
if(i>=m-1)
{
if(used[str[i-m+1]])
{
need[str[i-m+1]]--;
if(need[str[i-m+1]]<maxneed[str[i-m+1]])
match--;
}
}
}
cout<<cnt<<endl;
}