ABC 193
Table of Contents
https://atcoder.jp/contests/abc193
A. Discount
https://atcoder.jp/contests/abc193/tasks/abc193_a
B. Play Snuke
https://atcoder.jp/contests/abc193/tasks/abc193_b
C. Unexpressed
https://atcoder.jp/contests/abc193/tasks/abc193_c
D. Poker
https://atcoder.jp/contests/abc193/tasks/abc193_d
愚直に確率を計算するだけ。
void solve() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
ll K;
string S, T;
cin >> K >> S >> T;
vll cnt(10, K);
rep(i, 4) {
cnt[S[i] - '0']--;
cnt[T[i] - '0']--;
}
auto score = [&](string s) -> ll {
vll used(10);
for (char c : s)
used[c - '0']++;
ll ans = 0;
rep2(i, 1, 10) {
ans += i * intpow(10, used[i]);
}
return ans;
};
ll ans = 0;
S[4] = T[4] = '0';
rep2(i, 1, 10) {
rep2(j, 1, 10) {
S.back() = '0' + i;
T.back() = '0' + j;
if (score(S) <= score(T))
continue;
ans += cnt[i] * (cnt[j] - (i == j));
}
}
ll rem = K * 9 - 8;
printf("%.9lf\n", (double)ans / (double)(rem * (rem - 1)));
}
E. Oversleeping
https://atcoder.jp/contests/abc193/tasks/abc193_e