csu1328模拟

来源:互联网 发布:mybatis打印sql语句 编辑:程序博客网 时间:2024/06/05 01:05

题目链接:点击打开链接

#include <iostream>#include<cstdio>#include<algorithm>#include<cstring>#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1using namespace std;const int maxn=1e3+10;char s[maxn],sub[maxn];int p[maxn],len;int Max,pos,cunt,n;void work(int k1,int k2){    int i,j,cost;    cost=0;for(i=k1,j=k2;i>=0&&j<cunt;i--,j++){    if(sub[i]!=sub[j])cost++;    if(cost>n)break;}i++,j--;if(i>j)return ;int Maxlen=p[j]-p[i]+1;//printf("k1=%d k2=%d i=%d j=%d %d\n",k1,k2,i,j,Maxlen);if(Maxlen>Max){    Max=Maxlen;    pos=p[i];}}int main(){    int i,j,k;    int ans=0;    while(~scanf("%d\n",&n))    {        Max=0,pos=0;        gets(s);  len=strlen(s); // printf("len=%d\n",len);        cunt=0;        for(i=0;i<len;i++)        {          if(isalpha(s[i]))          {          sub[cunt]=tolower(s[i]);          p[cunt++]=i;          }        }        sub[cunt]='\0';    // puts(sub);       // printf("cunt=%d\n",cunt);        for(i=0;i<cunt;i++)        {            work(i,i);            work(i,i+1);        }        printf("Case %d: %d %d\n",++ans,Max,pos+1);    }}


原创粉丝点击