60分求助dalao
查看原帖
60分求助dalao
718919
shiwangchen2022楼主2023/8/3 20:45
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=2002000,M=2002000;
ll n,k,maxn=0,st[N];
string s;
void dfs(ll num,ll idx){
    if(num==k+1){
        ll ans=1;
        string c;
        for(ll i=1;i<=k;i++){
            if(i==1) c=s.substr(0,st[1]);
            else c=s.substr(st[i-1],st[i]-st[i-1]);
            ans*=stol(c);
        }
        ans*=stol(s.substr(st[k],n-st[k]));
        maxn=max(maxn,ans);
        return ;
    }
    for(ll i=idx;i<=n-1;i++){
        st[num]=i;
        dfs(num+1,i+1);
        st[num]=0;
    }
}
int main(){
    cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);
    ll t=1;
    while(t--){
        cin>>n>>k>>s;
        dfs(1,1);
        cout<<maxn<<endl;
    }
    return 0;
}

RE了4个点

2023/8/3 20:45
加载中...