結果

問題 No.313 π
ユーザー 0w10w1
提出日時 2016-11-27 21:20:55
言語 C++14
(gcc 12.3.0 + boost 1.83.0)
結果
AC  
実行時間 346 ms / 5,000 ms
コード長 1,078 bytes
コンパイル時間 1,632 ms
コンパイル使用メモリ 171,480 KB
実行使用メモリ 43,872 KB
最終ジャッジ日時 2024-05-05 14:21:17
合計ジャッジ時間 10,632 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 229 ms
43,620 KB
testcase_01 AC 227 ms
43,744 KB
testcase_02 AC 225 ms
43,748 KB
testcase_03 AC 216 ms
43,740 KB
testcase_04 AC 235 ms
43,612 KB
testcase_05 AC 224 ms
43,740 KB
testcase_06 AC 223 ms
43,740 KB
testcase_07 AC 230 ms
43,616 KB
testcase_08 AC 223 ms
43,768 KB
testcase_09 AC 227 ms
43,740 KB
testcase_10 AC 227 ms
43,748 KB
testcase_11 AC 228 ms
43,744 KB
testcase_12 AC 346 ms
43,740 KB
testcase_13 AC 228 ms
43,744 KB
testcase_14 AC 227 ms
43,616 KB
testcase_15 AC 231 ms
43,616 KB
testcase_16 AC 239 ms
43,744 KB
testcase_17 AC 242 ms
43,744 KB
testcase_18 AC 239 ms
43,744 KB
testcase_19 AC 231 ms
43,748 KB
testcase_20 AC 222 ms
43,740 KB
testcase_21 AC 232 ms
43,620 KB
testcase_22 AC 229 ms
43,748 KB
testcase_23 AC 222 ms
43,744 KB
testcase_24 AC 223 ms
43,612 KB
testcase_25 AC 224 ms
43,872 KB
testcase_26 AC 236 ms
43,740 KB
testcase_27 AC 233 ms
43,612 KB
testcase_28 AC 219 ms
43,620 KB
testcase_29 AC 217 ms
43,872 KB
testcase_30 AC 210 ms
43,748 KB
testcase_31 AC 218 ms
43,744 KB
testcase_32 AC 214 ms
43,744 KB
testcase_33 AC 215 ms
43,616 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

signed main(){
  vector< int > np( ( int ) 1e7 );
  vector< int > pt;
  for( int i = 2; pt.size() < ( int ) 2e5 + 1; ++i )
    if( not np[ i ] ){
      if( i > 9 )
        pt.emplace_back( i );
      for( int j = i + i; j < ( int ) 1e7; j += i )
        np[ j ] = 1;
    }

  /*
  string pi; cin >> pi;
  pi[ 0 ] = '3';
  ll hoge = 0LL;
  for( int i = 0, p = 0; i < pi.size(); ++i ){
    if( pi[ i ] == '.' ) continue;
    hoge += 1LL * pt[ p ] * ( pi[ i ] - '0' );
    ++p;
  }
  cout << hoge << endl;
  assert( hoge == 1187844913846LL );
  */

  const ll hoge = 1187894336729LL;
  
  string S; cin >> S;
  ll foo = 0LL;
  for( int i = 0, p = 0; i < S.size(); ++i ){
    if( S[ i ] == '.' ) continue;
    foo += 1LL * pt[ p ] * ( S[ i ] - '0' );
    ++p;
  }
  ll diff = foo - hoge;
  for( int i = 0; i < pt.size(); ++i )
    if( abs( diff ) % pt[ i ] == 0 ){
      int x = i > 0 ? i + 1 : i;
      cout << S[ x ] << " " << ( char ) ( S[ x ] - diff / pt[ i ] ) << endl;
      exit( 0 );
    }

  return 0;
}
0