比赛 暑假培训B班二测 评测结果 AAAAAAAAAA
题目名称 牛棚回声 最终得分 100
用户昵称 Makazeu 运行时间 0.002 s
代码语言 C++ 内存使用 0.32 MiB
提交时间 2012-07-22 10:20:08
显示代码纯文本
//牛棚回声 
#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;
}