提出 #30800151


ソースコード 拡げる

#include <cstdio>
#include <algorithm>
const int N = 4e2 + 10; typedef double db; db f[N][N][N]; int cnt[3], n;  
db dfs(int i, int j, int k)
{
	if (f[i][j][k]) return f[i][j][k];
	if (!i && !j && !k) return 0;
	if (i) f[i][j][k] += (db)i / n * dfs(i - 1, j, k);
	if (j) f[i][j][k] += (db)j / n * dfs(i + 1, j - 1, k);
	if (k) f[i][j][k] += (db)k / n * dfs(i, j + 1, k - 1);
	f[i][j][k] += 1; f[i][j][k] *= (db)n / (i + j + k);
	return f[i][j][k];
}
int main()
{
	scanf("%d", &n);
	for (int i = 1, x; i <= n; ++i) scanf("%d", &x), ++cnt[x - 1];
	printf("%.10lf\n", dfs(cnt[0], cnt[1], cnt[2])); return 0;
}

提出情報

提出日時
問題 J - Sushi
ユーザ zhiyangfan
言語 C++ (GCC 9.2.1)
得点 100
コード長 624 Byte
結果 AC
実行時間 324 ms
メモリ 147576 KiB

コンパイルエラー

./Main.cpp: In function ‘int main()’:
./Main.cpp:16:7: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   16 |  scanf("%d", &n);
      |  ~~~~~^~~~~~~~~~
./Main.cpp:17:39: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   17 |  for (int i = 1, x; i <= n; ++i) scanf("%d", &x), ++cnt[x - 1];
      |                                  ~~~~~^~~~~~~~~~

ジャッジ結果

セット名 All
得点 / 配点 100 / 100
結果
AC × 22
セット名 テストケース
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
ケース名 結果 実行時間 メモリ
0_00 AC 5 ms 1656 KiB
0_01 AC 3 ms 1668 KiB
0_02 AC 5 ms 1628 KiB
0_03 AC 1 ms 1924 KiB
1_00 AC 1 ms 1648 KiB
1_01 AC 1 ms 1712 KiB
1_02 AC 1 ms 1616 KiB
1_03 AC 6 ms 2836 KiB
1_04 AC 138 ms 147512 KiB
1_05 AC 316 ms 147576 KiB
1_06 AC 108 ms 109724 KiB
1_07 AC 194 ms 110716 KiB
1_08 AC 291 ms 147500 KiB
1_09 AC 222 ms 126196 KiB
1_10 AC 214 ms 126564 KiB
1_11 AC 268 ms 135424 KiB
1_12 AC 258 ms 133040 KiB
1_13 AC 314 ms 145468 KiB
1_14 AC 312 ms 143644 KiB
1_15 AC 322 ms 146460 KiB
1_16 AC 324 ms 145600 KiB
1_17 AC 310 ms 147432 KiB