結果
問題 | No.212 素数サイコロと合成数サイコロ (2) |
ユーザー |
![]() |
提出日時 | 2015-05-22 22:48:48 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 458 ms / 5,000 ms |
コード長 | 3,470 bytes |
コンパイル時間 | 4,043 ms |
コンパイル使用メモリ | 79,492 KB |
実行使用メモリ | 54,120 KB |
最終ジャッジ日時 | 2024-07-06 05:19:08 |
合計ジャッジ時間 | 6,090 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 10 |
ソースコード
import java.util.Arrays;import java.util.Scanner;public class YukiB {MyScanner sc = new MyScanner();Scanner sc2 = new Scanner(System.in);long start = System.currentTimeMillis();long fin = System.currentTimeMillis();final int MOD = 1000000007;int[] dx = { 1, 0, 0, -1 };int[] dy = { 0, 1, -1, 0 };int P, C;double ex;int p[] = { 2, 3, 5, 7, 11, 13 };int c[] = { 4, 6, 8, 9, 10, 12 };void run() {P = sc.nextInt();C = sc.nextInt();ex = 0;dfs(0, 1.0);ex /= Math.pow(6, P + C);System.out.println(ex);}void dfs(int depth, double sum) {if (depth == P + C) {ex += sum;return;}if (depth < P) {for (int i = 0; i < p.length; i++) {dfs(depth + 1, sum * p[i]);}} else {for (int i = 0; i < c.length; i++) {dfs(depth + 1, sum * c[i]);}}}public static void main(String[] args) {new YukiB().run();}void debug(Object... o) {System.out.println(Arrays.deepToString(o));}void debug2(char[][] array) {for (int i = 0; i < array.length; i++) {for (int j = 0; j < array[i].length; j++) {System.out.print(array[i][j]);}System.out.println();}}boolean inner(int h, int w, int limH, int limW) {return 0 <= h && h < limH && 0 <= w && w < limW;}void swap(int[] x, int a, int b) {int tmp = x[a];x[a] = x[b];x[b] = tmp;}// find minimum i (a[i] >= border)int lower_bound(int a[], int border) {int l = -1;int r = a.length;while (r - l > 1) {int mid = (l + r) / 2;if (border <= a[mid]) {r = mid;} else {l = mid;}}// r = l + 1return r;}boolean palindrome(String s) {for (int i = 0; i < s.length() / 2; i++) {if (s.charAt(i) != s.charAt(s.length() - 1 - i)) {return false;}}return true;}class MyScanner {int nextInt() {try {int c = System.in.read();while (c != '-' && (c < '0' || '9' < c))c = System.in.read();if (c == '-')return -nextInt();int res = 0;do {res *= 10;res += c - '0';c = System.in.read();} while ('0' <= c && c <= '9');return res;} catch (Exception e) {return -1;}}double nextDouble() {return Double.parseDouble(next());}long nextLong() {return Long.parseLong(next());}String next() {try {StringBuilder res = new StringBuilder("");int c = System.in.read();while (Character.isWhitespace(c))c = System.in.read();do {res.append((char) c);} while (!Character.isWhitespace(c = System.in.read()));return res.toString();} catch (Exception e) {return null;}}int[] nextIntArray(int n) {int[] in = new int[n];for (int i = 0; i < n; i++) {in[i] = nextInt();}return in;}int[][] nextInt2dArray(int n, int m) {int[][] in = new int[n][m];for (int i = 0; i < n; i++) {in[i] = nextIntArray(m);}return in;}double[] nextDoubleArray(int n) {double[] in = new double[n];for (int i = 0; i < n; i++) {in[i] = nextDouble();}return in;}long[] nextLongArray(int n) {long[] in = new long[n];for (int i = 0; i < n; i++) {in[i] = nextLong();}return in;}char[][] nextCharField(int n, int m) {char[][] in = new char[n][m];for (int i = 0; i < n; i++) {String s = sc.next();for (int j = 0; j < m; j++) {in[i][j] = s.charAt(j);}}return in;}}}