记录编号 115321 评测结果 AAAAAAAAAAAAAAAA
题目名称 翻译玛雅著作 最终得分 100
用户昵称 Gravatarsqyon 是否通过 通过
代码语言 C++ 运行时间 0.094 s
提交时间 2014-08-17 19:32:39 内存使用 3.18 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>

using namespace std;

int g[500],used[500],g_size,s_size;
char s[3000050];

void init()
{
	scanf("%d %d", &g_size, &s_size);
	scanf("\n");
	char tmp;
	for (int i = 0; i < g_size; i++)
	{
		scanf("%c", &tmp);
		g[tmp - 'A']++;
	}
	scanf("%s",s);
	return ;
}

int ans,l,r;

void solve()
{
	while (r <= s_size)
	{
		if (used[s[r] - 'A'] >= g[s[r] - 'A'])
		{
			if (!g[s[r] - 'A'])
			{
				l = ++r;
				memset(used, 0, sizeof(used));
				continue;
			}
			used[s[l++] - 'A']--;
			continue;
		}
		
		if (r - l + 1 == g_size)
		{
			ans++;
			used[s[l++] - 'A']--;
			used[s[r++] - 'A']++;
			continue;
		}
		
		used[s[r++] - 'A']++;
	}
	return ;
}

int main()
{
	freopen("writing.in", "r", stdin);
	freopen("writing.out", "w", stdout);
	init();
	solve();
	printf("%d",ans);
	return 0;
}