#!/usr/bin/ruby IO.popen('g++ -xc++ -std=c++11 -ozzz - -lquadmath','w'){|io| io.puts DATA.read } IO.popen('./zzz','r+'){|io| io.write $<.read io.close_write puts io.read } File.unlink('zzz') __END__ //その他行きでおk☆ ToT #include #include #include #include using namespace std; int main(){ vector<__float128>t(101); for(int i=10;i<101;i++)t[i]=log10q(__float128(i)); int N; for(scanf("%d",&N);N--;){ long long A,B; scanf("%lld%lld",&A,&B); __float128 result=log10q(__float128(A))*B; long long Z=result; result-=Z-1; auto it=upper_bound(t.begin(),t.end(),result);--it; int X=distance(t.begin(),it); printf("%d %d %lld\n",X/10,X%10,Z); } }