結果
| 問題 | No.3483 A Forbidden Fruit |
| コンテスト | |
| ユーザー |
hiromi_ayase
|
| 提出日時 | 2026-03-27 22:11:54 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
AC
|
| 実行時間 | 122 ms / 2,000 ms |
| コード長 | 1,231 bytes |
| 記録 | |
| コンパイル時間 | 4,101 ms |
| コンパイル使用メモリ | 378,668 KB |
| 実行使用メモリ | 6,272 KB |
| 最終ジャッジ日時 | 2026-03-27 22:12:04 |
| 合計ジャッジ時間 | 8,767 ms |
|
ジャッジサーバーID (参考情報) |
judge1_1 / judge2_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 16 |
ソースコード
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using i32 = int;
using u32 = unsigned int;
using i64 = long long;
using u64 = unsigned long long;
#define FAST_IO \
ios::sync_with_stdio(false); \
cin.tie(0);
const i64 INF = 1001001001001001001;
using Modint = atcoder::static_modint<998244353>;
vector<vector<Modint>> enumFIF(int n) {
vector fif(2, vector(n + 1, Modint(0)));
fif[0][0] = 1;
for (auto i : views::iota(1, n + 1)) {
fif[0][i] = fif[0][i - 1] * i;
}
fif[1][n] = fif[0][n].inv();
for (auto i = n; i > 0; i--) {
fif[1][i - 1] = fif[1][i] * i;
}
return fif;
}
Modint comb(int n, int r, vector<vector<Modint>>& fif) {
return fif[0][n] * fif[1][r] * fif[1][n - r];
}
int main() {
FAST_IO
int T;
cin >> T;
while (T--) {
i64 N, M;
i64 K;
cin >> N >> M >> K;
// x * M >= K
i64 x = (K + M - 1) / M;
double ans = 0;
if (x < N) {
// N-1Cx-1/NCx * 1/M
// / x /MN
double y = 1.0 * x / N / M;
ans = 1.0 - y;
} else {
i64 z = K - (N - 1) * M;
// M-1Cx-1/MCx = x/M
double y = 1.0 * z / M;
ans = 1.0 - y;
}
cout << setprecision(15) << fixed << ans << endl;
}
}
hiromi_ayase