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