大佬求调
查看原帖
大佬求调
1020566
prg_equal_depressed楼主2024/7/14 14:45
#include <iostream>
#include <algorithm>
using namespace std;
__int128 n,k,a[50],p,maxn;
char s;
__int128 read(){
    __int128 x=0,f=1;
    char ch=getchar();
    while (ch<'0'||ch>'9'){
        if (ch=='-') f=-1;
        ch=getchar();
    }
    while (ch>='0'&&ch<='9'){
        x=x*10+ch-'0';
        ch=getchar();
    }
    return x*f;
}
void write(__int128 x){
    if (x<0){
    	putchar('-');
        x=-x;
    }
    if (x>9) write(x / 10);
    putchar(x%10+'0');
}
void dfs(__int128 x,__int128 q,__int128 t){
	if (x>=k){
		p=0;
		for (__int128 i=t+1;i<=n;i++){
			p=p*10+a[i];
			maxn=max(maxn,q*p);
		}
		return;
	}
	for (__int128 i=t+1;i<=n-k+x;i++){
		p=0;
		for (__int128 j=t+1;j<=i;j++){
			p=p*10+a[j];
		}
		dfs(x+1,q*p,i);
	}
    return;
}
int main(){
	n=read();k=read();
    for (__int128 i=1;i<=n;i++){
        cin>>s;
        a[i]=s-'0';
    }
    dfs(0,1,0);
    write(maxn);
    return 0;
} 

80分玄关

2024/7/14 14:45
加载中...