#include<bits/stdc++.h> using namespace std; const int N=101,mod=1e9+7; double val[N][N];int n=100; int ans;int cho[N]; inline void maker(){ cout<<100<<endl; for(int i=1;i<=n;++i){ if(!cho[i]){ cout<<1<<" "; }else{ cout<<cho[i]<<" "; } } } inline void dfs(int now,double pas,int tot){ if(tot+(100-now+1)<=ans){ return; } if(now==101||val[100][now]<=pas){ if(tot==48){ maker(); exit(0); } ans=max(ans,tot); return; } for(int i=1;i<=n;++i){//选最小的即可 if(val[i][now]>pas){ cho[now]=i; dfs(now+1,val[i][now],tot+1); break; } } dfs(now+1,pas,tot); } int main(){ // freopen("in.in","w",stdout); for(int i=1;i<=n;++i){ for(int j=1;j<=n;++j){ val[i][j]=log(i)/j; } } dfs(50,0,1); return 0; }