记录编号 27932 评测结果 AAAAAAAAAA
题目名称 [USACO Oct09] 牛棚回声 最终得分 100
用户昵称 GravatarMakazeu 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2011-10-10 19:47:01 内存使用 0.27 MiB
显示代码纯文本
//牛棚回声 
#include <fstream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;

ifstream fin("echo.in");
ofstream fout("echo.out");
char a[100],b[100];
int al,bl;//字符串a、b的长度

int max(int q,int p)
{
    if (q>=p) return q;
	return p;
}

int min(int q,int p)
{
    if (q>=p) return p;
	return q;
}

int checka(int f)
{
	int maxn=0;
	int tn=0;
	char aa=a[f];
	for (int i=0;i<bl;i++)
	{
		tn=0;
		if (b[i]==aa)
		{
			for (int j=i;j<bl;j++)
			{
				if (b[j]==a[j-i]) tn++;
				else
				{
					maxn=max(maxn,tn);
					break;
				}
			}
			maxn=max(maxn,tn);
		}
	}
	return maxn;
}

int checkb(int f)
{
	int maxn=0;
	int tn=0;
	char bb=b[f];
	for (int i=0;i<al;i++)
	{
		tn=0;
		if (a[i]==bb)
		{
			for (int j=i;j<al;j++)
			{
				if (a[j]==b[j-i]) tn++;
				else
				{
					maxn=max(maxn,tn);
					break;
				}
			}
			maxn=max(maxn,tn);
		}
	}
	return maxn;
}

void init()
{
	fin>>a>>b;
	fin.close();
	al=strlen(a);
	bl=strlen(b);
	int m=0,n=0;
	for (int i=0;i<min(al,bl);i++)
		m=max(m,checka(i));
	for (int i=0;i<min(al,bl);i++)
		n=max(n,checkb(i));
	fout<<max(m,n);	
	fout.close();
	return;
}
int main()
{
	init();
	return 0;
}