⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calfflac.cpp

📁 USACO chapter one.May hope it useful to someone
💻 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 + -