Submission #9313650
Source Code Expand
import java.util.Scanner;
public class Main {
public static boolean[][][] visited;
public static double sushi(double[][][] dp, int i, int j, int k, int N) {
if(i <=0 && j <= 0 && k <= 0) {
return 0;
}
if(visited[i][j][k]) {
return dp[i][j][k];
}
visited[i][j][k] = true;
double sum = i+j+k;
dp[i][j][k] = N/sum;
if(i > 0) {
double r1;
r1 = sushi(dp, i-1, j, k, N);
r1 = r1 * i / sum;
dp[i][j][k] += r1;
}
if(j > 0) {
double r2;
r2 = sushi(dp, i+1, j-1, k, N);
r2 = r2 * j / sum;
dp[i][j][k] += r2;
}
if(k > 0) {
double r3;
r3 = sushi(dp, i, j+1, k-1, N);
r3 = r3 * k / sum;
dp[i][j][k] += r3;
}
return dp[i][j][k];
}
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
int N = sc.nextInt();
double[][][] dp;
int[] a = new int[Math.max(N+1, 3+1)];
for(int i=0; i<N; ++i) {
int t = sc.nextInt();
a[t]++;
}
int fromA3 = a[3];
int fromA23 = a[2] + fromA3;
dp = new double[a[1]+1+fromA23][a[2]+1+fromA3][a[3]+1];
visited = new boolean[a[1]+1+fromA23][a[2]+1+fromA3][a[3]+1];
double r = sushi(dp, a[1], a[2], a[3], N);
System.out.printf("%.10f\n", r);
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | J - Sushi |
| User | skysign |
| Language | Java8 (OpenJDK 1.8.0) |
| Score | 100 |
| Code Size | 1567 Byte |
| Status | AC |
| Exec Time | 558 ms |
| Memory | 307744 KiB |
Judge Result
| Set Name | All | ||
|---|---|---|---|
| Score / Max Score | 100 / 100 | ||
| Status |
|
| Set Name | Test Cases |
|---|---|
| All | 0_00, 0_01, 0_02, 0_03, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 0_00 | AC | 95 ms | 18896 KiB |
| 0_01 | AC | 96 ms | 19540 KiB |
| 0_02 | AC | 95 ms | 19924 KiB |
| 0_03 | AC | 96 ms | 18772 KiB |
| 1_00 | AC | 96 ms | 23764 KiB |
| 1_01 | AC | 95 ms | 20692 KiB |
| 1_02 | AC | 96 ms | 19028 KiB |
| 1_03 | AC | 110 ms | 24276 KiB |
| 1_04 | AC | 130 ms | 29060 KiB |
| 1_05 | AC | 550 ms | 301476 KiB |
| 1_06 | AC | 128 ms | 24064 KiB |
| 1_07 | AC | 314 ms | 129200 KiB |
| 1_08 | AC | 426 ms | 163108 KiB |
| 1_09 | AC | 292 ms | 88616 KiB |
| 1_10 | AC | 283 ms | 87600 KiB |
| 1_11 | AC | 405 ms | 168112 KiB |
| 1_12 | AC | 425 ms | 165296 KiB |
| 1_13 | AC | 510 ms | 237216 KiB |
| 1_14 | AC | 501 ms | 236188 KiB |
| 1_15 | AC | 552 ms | 305648 KiB |
| 1_16 | AC | 554 ms | 304920 KiB |
| 1_17 | AC | 558 ms | 307744 KiB |