結果

問題 No.212 素数サイコロと合成数サイコロ (2)
ユーザー 0w10w1
提出日時 2016-11-20 21:58:19
言語 C++14
(gcc 13.2.0 + boost 1.83.0)
結果
AC  
実行時間 207 ms / 5,000 ms
コード長 611 bytes
コンパイル時間 1,499 ms
コンパイル使用メモリ 164,500 KB
実行使用メモリ 4,380 KB
最終ジャッジ日時 2023-08-18 05:55:16
合計ジャッジ時間 2,497 ms
ジャッジサーバーID
(参考情報)
judge13 / judge14
このコードへのチャレンジ(β)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
4,376 KB
testcase_01 AC 1 ms
4,376 KB
testcase_02 AC 2 ms
4,380 KB
testcase_03 AC 2 ms
4,376 KB
testcase_04 AC 8 ms
4,376 KB
testcase_05 AC 207 ms
4,376 KB
testcase_06 AC 36 ms
4,376 KB
testcase_07 AC 36 ms
4,380 KB
testcase_08 AC 2 ms
4,376 KB
testcase_09 AC 2 ms
4,376 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

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

int asai[] = { 2, 3, 5, 7, 11, 13 };
int bsai[] = { 4, 6, 8, 9, 10, 12 };

void dfs( int a, int b, double x, double &sum ){
  if( a + b == 0 )
    return ( void ) ( sum += x );
  if( a - 1 >= 0 ){
    for( int i = 0; i < 6; ++i )
      dfs( a - 1, b, x * asai[ i ], sum );
    return;
  } else{
    for( int i = 0; i < 6; ++i )
      dfs( a, b - 1, x * bsai[ i ], sum );
    return;
  }
}

signed main(){
  int a, b; cin >> a >> b;
  double ans = 0.0;
  dfs( a, b, 1.0, ans );
  cout << fixed << setprecision( 12 ) << ans / pow( 6.0, a + b ) << endl;
  return 0;
}
0