评测记录
Code:
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+10;
int lim,fg,ans;
int num[N],tot[N];
void dfs(int dep,int mol,int den,int pre){
if(dep==lim+1){
if(!mol){
fg=1;
if(num[lim]<tot[lim]){
for(int i=1;i<=lim;i++)
tot[i]=num[i];
ans=num[lim];
}
}
return;
}
int x=(lim+1-dep);
for(int l=max(pre+1,(den+mol-1)/mol);l<=den*x/mol;l++){
num[dep]=l;
dfs(dep+1,mol*l-den,den*l,l);
}
}
signed main(){
int a,b;
scanf("%lld%lld",&a,&b);
lim=1;
while(!fg){
memset(tot,0x3f,sizeof(tot));
fg=0;
dfs(1,a,b,1);
lim++;
}
for(int i=1;i<lim;i++)
printf("%lld ",tot[i]);
return 0;
}