这个代码运行了很多次,终于通过运行了(也就写了1小时)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
inline int read(){
int zheshisumzhiaoma=0,zheshishifoufushuzhidaoma=1;char zheshishuruzhidaoma=getchar();
while((zheshishuruzhidaoma<'0'||zheshishuruzhidaoma>'9')&&zheshishuruzhidaoma!=EOF){
if(zheshishuruzhidaoma=='-')
zheshishifoufushuzhidaoma=-1;
zheshishuruzhidaoma=getchar();
}
while(zheshishuruzhidaoma>='0'&&zheshishuruzhidaoma<='9'&&zheshishuruzhidaoma!=EOF){
zheshisumzhiaoma=zheshisumzhiaoma*10+zheshishuruzhidaoma-'0';
zheshishuruzhidaoma=getchar();
}
return zheshisumzhiaoma*zheshishifoufushuzhidaoma;
}
const int zheshishuzudaxiaozhidama=101;
int zheshiyanglikzhidaoma,zheshiyanglipzhidaoma,zheshiyangliszhidaoma,zheshiyanglidzhidaoma;
bool zheshishifoufushuzhidaoma[zheshishuzudaxiaozhidama][zheshishuzudaxiaozhidama*9][zheshishuzudaxiaozhidama][10];
int main(){
zheshiyanglikzhidaoma=read();zheshiyangliszhidaoma=read();zheshiyanglipzhidaoma=read();zheshiyanglidzhidaoma=read();
if(zheshiyangliszhidaoma>zheshiyanglikzhidaoma*9||zheshiyanglipzhidaoma>zheshiyanglikzhidaoma*9||((zheshiyangliszhidaoma*zheshiyanglidzhidaoma%9)^(zheshiyanglipzhidaoma%9))){
puts("-1");
return 0;
}
zheshishifoufushuzhidaoma[0][zheshiyangliszhidaoma][zheshiyanglipzhidaoma/9][0]=1;
for(int zheshipaohui1zhidaoma=1;zheshipaohui1zhidaoma<zheshiyanglikzhidaoma;zheshipaohui1zhidaoma++){
int zheshi2stzhidaoma=max(zheshiyangliszhidaoma-zheshipaohui1zhidaoma*9,0),P_st=max(zheshiyanglipzhidaoma-zheshipaohui1zhidaoma*9,0);
for(int zheshipaohui2zhidaoma=zheshi2stzhidaoma;zheshipaohui2zhidaoma<=zheshiyangliszhidaoma;zheshipaohui2zhidaoma++) for(int zheshipaohui4zhidaoma=0;zheshipaohui4zhidaoma<zheshiyanglidzhidaoma;zheshipaohui4zhidaoma++){
int zheshimohaozhidaoma=(zheshipaohui2zhidaoma*zheshiyanglidzhidaoma+zheshipaohui4zhidaoma)%9;
for(int zheshipaohui3zhidaoma=P_st/9,realk=zheshipaohui3zhidaoma*9+zheshimohaozhidaoma;realk<=zheshiyanglipzhidaoma;zheshipaohui3zhidaoma++,realk+=9) for(int zheshipaohui5zhidaoma=0;!zheshishifoufushuzhidaoma[zheshipaohui1zhidaoma][zheshipaohui2zhidaoma][zheshipaohui3zhidaoma][zheshipaohui4zhidaoma]&&zheshipaohui5zhidaoma<10;zheshipaohui5zhidaoma++) if(zheshishifoufushuzhidaoma[zheshipaohui1zhidaoma-1][zheshipaohui2zhidaoma+(zheshipaohui4zhidaoma*10+zheshipaohui5zhidaoma)/zheshiyanglidzhidaoma][(realk+zheshipaohui5zhidaoma)/9][(zheshipaohui4zhidaoma*10+zheshipaohui5zhidaoma)%zheshiyanglidzhidaoma]) zheshishifoufushuzhidaoma[zheshipaohui1zhidaoma][zheshipaohui2zhidaoma][zheshipaohui3zhidaoma][zheshipaohui4zhidaoma]=1;
}
}
int zheshistzhidaoma=zheshiyanglidzhidaoma;
while(zheshistzhidaoma<zheshiyanglidzhidaoma*10&&!zheshishifoufushuzhidaoma[zheshiyanglikzhidaoma-1][zheshistzhidaoma/zheshiyanglidzhidaoma][(zheshistzhidaoma/10+zheshistzhidaoma%10)/9][zheshistzhidaoma%zheshiyanglidzhidaoma]) zheshistzhidaoma++;
if(zheshistzhidaoma==zheshiyanglidzhidaoma*10){
puts("-1");
return 0;
}
printf("%d",zheshistzhidaoma/zheshiyanglidzhidaoma);
int zhishiduideguanjia=zheshiyanglikzhidaoma-1,zheshiyanglikzhidaoma2=zheshistzhidaoma/zheshiyanglidzhidaoma,zheshiyanglikzhidaoma=(zheshistzhidaoma/10+zheshistzhidaoma%10),L=zheshistzhidaoma%zheshiyanglidzhidaoma;
while(zhishiduideguanjia){
int zheshipaohui5zhidaoma=0;
while(!zheshishifoufushuzhidaoma[zhishiduideguanjia-1][zheshiyanglikzhidaoma2+(L*10+zheshipaohui5zhidaoma)/zheshiyanglidzhidaoma][(zheshiyanglikzhidaoma+zheshipaohui5zhidaoma)/9][(L*10+zheshipaohui5zhidaoma)%zheshiyanglidzhidaoma]) zheshipaohui5zhidaoma++;
printf("%d",(L*10+zheshipaohui5zhidaoma)/zheshiyanglidzhidaoma);
zhishiduideguanjia--;zheshiyanglikzhidaoma2+=(L*10+zheshipaohui5zhidaoma)/zheshiyanglidzhidaoma;zheshiyanglikzhidaoma+=zheshipaohui5zhidaoma;L=(L*10+zheshipaohui5zhidaoma)%zheshiyanglidzhidaoma;
}
return 0;
}