結果

問題 No.219 巨大数の概算
ユーザー ciel
提出日時 2015-05-29 16:31:39
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
AC  
実行時間 8 ms / 1,500 ms
コード長 541 bytes
コンパイル時間 451 ms
コンパイル使用メモリ 47,744 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-07-18 10:30:54
合計ジャッジ時間 2,865 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 51
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:12:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   12 |     for(scanf("%d",&N);N--;){
      |         ~~~~~^~~~~~~~~
main.cpp:14:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   14 |         scanf("%lld%lld",&A,&B);
      |         ~~~~~^~~~~~~~~~~~~~~~~~

ソースコード

diff #

//誤差が怖いです
#include <vector>
#include <algorithm>
#include <cstdio>
#include <cmath>
using namespace std;

int main(){
    vector<long double>t(101);
    for(int i=10;i<101;i++)t[i]=log10l(i);
    int N;
    for(scanf("%d",&N);N--;){
        long long A,B;
        scanf("%lld%lld",&A,&B);
        long double result=log10l(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);
    }
}
0