#include using namespace std; bool check(string s){ sort(s.begin(),s.end()); for(int i=1;i; vector ask(string s){ cout << s << "\n"; fflush(stdout); vector res(30); vector rv; for(int i=0;i<30;i++){ cin >> res[i].first >> res[i].second; rv.push_back(res[i].first*6+res[i].second); } // cerr << "done\n"; if(res[0].first==5 || res[0].first<0){exit(0);} // finish return rv; } int hbc(string s,string t){ int res=0; for(int k=0;k<5;k++){ if(s[k]==t[k]){res+=6;} } for(int k=0;k<5;k++){ for(int l=0;l<5;l++){ if(k==l){continue;} if(s[k]==t[l]){res++;} } } return res; } typedef struct{ string q; vector rem; vector> v; }his; vector alive; vector slis; map sinv; queue dead_q; vector> prbs; vector prb; vector hv; set ast; void incl(string s){ int sid=sinv[s]; for(int i=0;i remp(32,0); vector> vemp(32); for(int i=0;i<=99999;i++){ int v=i; string cur; for(int j=0;j<5;j++){ cur.push_back('0'+v%10); v/=10; } reverse(cur.begin(),cur.end()); if(check(cur)){ sinv[cur]=slis.size(); slis.push_back(cur); alive.push_back(1); } } prb.resize(slis.size()); vector prb_ini; for(int i=0;i vd; for(int i=0;i=0.99){cur=1.0e9; break;} cur+=nx*ce; ce*=1.15; } if(best