比赛 2024暑假C班集训7 评测结果 AAAAAAATTTTTTTTTTTTT
题目名称 游戏 最终得分 35
用户昵称 dream 运行时间 28.034 s
代码语言 C++ 内存使用 3.62 MiB
提交时间 2024-07-07 11:47:01
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,k;
string a;
int cc[1000005]={};
ll cnt=0; 
bool cmp(ll x,ll y){
    return x>y;
}
bool judge(string c){
//        cout<<c<<"\n";
    if(c.size()%2==0){
        return false;
    }
    for(ll i=0;i<c.size()/2;i++){
//            cout<<i<<" "<<c.size()-i-1<<"\n";
        if(c[i]!=c[c.size()-i-1]){
            return false;
        }
    }
    return true;
}
namespace subtask8{
    int main(){
        ll mx=0;
        for(ll i=0;i<n;i++){
            for(ll j=i;j<n;j+=2){
                string c="";
                for(ll q=i;q<=j;q++){
                    c.push_back(a[q]);
                }
                if(judge(c)){
                    mx=max((ll)(c.size()),mx)%19930726;
                }                
            }        
        }        
        cout<<mx;
        return 0;
    }
}
int main(){
    ios::sync_with_stdio(0);
    freopen("rehearse.in","r",stdin);
    freopen("rehearse.out","w",stdout);
    cin>>n>>k;
    cin>>a;
    if(k==1){
        return subtask8::main();
    }
    cnt=0;
//    cout<<n<<" "<<k<<"\n";
    for(ll i=0;i<n;i++){
        for(ll j=i;j<n;j+=2){
            string c="";
            for(ll q=i;q<=j;q++){
                c.push_back(a[q]);
            }
            if(judge(c)){
                cc[++cnt]=c.size();
//                cout<<c<<"\n";
            }                
        }        
    }
    if(cnt<k){
        cout<<-1;
        return 0;
    }
//    cout<<cnt<<"\n"; 
    sort(cc+1,cc+cnt+1,cmp);
    ll res=1;
    for(ll i=1;i<=k;i++){
        if(cc[i]==1){
//            cout<<i<<"\n";
            break;
        }
        res*=cc[i];
        res%=19930726;
    }
    cout<<res;    
    return 0;
}