记录编号 584929 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 收集弹珠 最终得分 100
用户昵称 Gravatar黄天宇 是否通过 通过
代码语言 C++ 运行时间 1.053 s
提交时间 2023-11-16 21:39:56 内存使用 2.96 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<iomanip>
using namespace std;
string a;
int v[50005];
int n; 
int maxx;
bool flag;
int num;
int sum;
int ball(int x){
    sum=1;
    char now=a[x];
    int len=a.length();
    int step=0,l=x,r=x,nex;
    for(int i=1;i<len;i++){
       // if(i+x>=len&&x-i<0) break;
        nex=i+x;
        if(nex<len&&a[nex]==now&&step+nex-r-1<=n){
            step+=nex-r-1;
            r++;
            sum++;
        }
        nex=x-i;
        if(nex>=0&&a[nex]==now&&step+l-nex-1<=n){
            step+=l-nex-1;
            l--;
            sum++;
        }
    }
    return sum;
}
int main(){
    freopen("ball.in","r",stdin);
    freopen("ball.out","w",stdout);
    cin>>a;
    cin>>n;
    for(int i=0;i<a.length();i++){
        maxx=max(maxx,ball(i));
    }
    cout<<maxx<<endl;
    return 0;
}