結果

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

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 259 ms
43,740 KB
testcase_01 AC 245 ms
43,616 KB
testcase_02 AC 251 ms
43,740 KB
testcase_03 AC 247 ms
43,616 KB
testcase_04 AC 247 ms
43,616 KB
testcase_05 AC 256 ms
43,612 KB
testcase_06 AC 245 ms
43,616 KB
testcase_07 AC 250 ms
43,616 KB
testcase_08 AC 269 ms
43,620 KB
testcase_09 AC 248 ms
43,744 KB
testcase_10 AC 265 ms
43,656 KB
testcase_11 AC 256 ms
43,620 KB
testcase_12 AC 260 ms
43,616 KB
testcase_13 AC 259 ms
43,616 KB
testcase_14 AC 260 ms
43,616 KB
testcase_15 AC 247 ms
43,744 KB
testcase_16 AC 259 ms
43,748 KB
testcase_17 AC 241 ms
43,616 KB
testcase_18 AC 263 ms
43,620 KB
testcase_19 AC 256 ms
43,612 KB
testcase_20 AC 240 ms
43,740 KB
testcase_21 AC 234 ms
43,620 KB
testcase_22 AC 248 ms
43,620 KB
testcase_23 AC 250 ms
43,616 KB
testcase_24 AC 232 ms
43,616 KB
testcase_25 AC 251 ms
43,616 KB
testcase_26 AC 270 ms
43,616 KB
testcase_27 AC 256 ms
43,616 KB
testcase_28 AC 246 ms
43,612 KB
testcase_29 AC 238 ms
43,616 KB
testcase_30 AC 244 ms
43,740 KB
testcase_31 AC 243 ms
43,616 KB
testcase_32 AC 259 ms
43,616 KB
testcase_33 AC 240 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