PKU 1331 Multiply
http://poj.org/problem?id=1331
基数変換
ちゃんとその基数に収まっているかを確認する。
サンプル親切。
ll to10(string in,ll base){ ll ret=0; rep(i,SZ(in)){ ret=ret*base+in[i]-'0'; } return ret; } main(){ int t; cin>>t; while(t--){ string p,q,r; cin>>p>>q>>r; bool out=false; for(int i=2;i<=16;i++){ bool ok=true; rep(j,SZ(p))if(p[j]-'0'>=i)ok=false; rep(j,SZ(q))if(q[j]-'0'>=i)ok=false; rep(j,SZ(r))if(r[j]-'0'>=i)ok=false; if(!ok)continue; if(to10(p,i)*to10(q,i)==to10(r,i)){ cout<<i<<endl; out=true; break; } } if(out)continue; cout<<0<<endl; } }