📄 calfflac.cpp
字号:
/*
ID: chenkai4
PROG: calfflac
LANG: C++
*/
#include<iostream>
#include<fstream>
using namespace std;
ifstream in("calfflac.in");
ofstream out("calfflac.out");
char real[20001],buffer[20001];
int rl=0,bl=0;
bool isPalindrome(int l,int r)
{
for(int a=l;a<=(l+r)/2;a++)
if(buffer[a]!=buffer[r-(a-l)])
return false;
return true;
}
#define min(A,B) (A<B?A:B)
int main()
{
freopen("calfflac.in","r",stdin);
freopen("calfflac.out","w",stdout);
while(scanf("%c",&real[++rl]))
{
if(real[rl]<='z'&&real[rl]>='a')
buffer[++bl]=real[rl]-('a'-'A');
else if(real[rl]<='Z'&&real[rl]>='A')
buffer[++bl]=real[rl];
if(real[rl]=='\0')
{rl--;break;}
}
int maxL=1;int ltl=1,ltr=1;
for(int a=1;a<=bl;a++)
{
int ttl=a,ttr=a;
for(;ttl>=1&&ttr<=bl&&(ttr-ttl+1<=2000);ttl--,ttr++)
if(buffer[ttl-1]!=buffer[ttr+1])
break;
if(ttr-ttl+1>maxL)
{
maxL=ttr-ttl+1;
ltl=ttl;ltr=ttr;
}
ttl=a+1;ttr=a;
for(;ttl>=1&&ttr<=bl&&(ttr-ttl+1<=2000);ttl--,ttr++)
if(buffer[ttl-1]!=buffer[ttr+1])
break;
if(ttr-ttl+1>maxL)
{
maxL=ttr-ttl+1;
ltl=ttl;ltr=ttr;
}
}
printf("%d\n",(ltr-ltl+1));
int cl=ltl,cr=ltr;
int cCount=0;
for(int a=1;a<=rl;a++)
if((real[a]<='Z'&&real[a]>='A')||(real[a]<='z'&&real[a]>='a'))
{
cCount++;
if(cCount==cl)
{
for(int b=a;b<=rl;b++)
{
printf("%c",real[b]);
cCount+=(real[b]<='Z'&&real[b]>='A')||(real[b]<='z'&&real[b]>='a');
if(cCount==cr+1)
break;
}
break;
}
}
printf("\n");
fclose(stdin);
fclose(stdout);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -