Submission #50750315


Source Code Expand

#include <bits/stdc++.h>
#ifdef LOCAL
#include "debug.h"
#else
#define debug(...)
#endif
using int64 = long long;
using uint = unsigned int;
using uint64 = unsigned long long;
bool ckmin(auto& a, auto b) { return b < a ? a = b, 1 : 0; }
bool ckmax(auto& a, auto b) { return b > a ? a = b, 1 : 0; }
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int N, L, D;
  cin >> N >> L >> D;
  int mm = max(N, L + D) + 1;

  vector<double> py(mm), sum_py(mm);
  py[0] = 1;
  sum_py[0] = 1;
  for (int i = 1; i < mm; i++) {
    int l = max(0, i - D);
    int r = min(L - 1, i - 1);
    if (l <= r) {
      double t = sum_py[r] - (l == 0 ? 0 : sum_py[l - 1]);
      py[i] = t / D;
    }
    sum_py[i] = sum_py[i - 1] + py[i];
  }
//   debug(py);
//   debug(sum_py);

  vector<double> f(mm), g(mm), dp(mm), sum_dp(mm);
  for (int i = mm - 1; i >= 0; i--) {
    int l = min(mm - 1, i + 1);
    int r = min(mm - 1, i + D);
    double t = sum_dp[l] - (r == mm - 1 ? 0 : sum_dp[r + 1]);
    f[i] = t / D;

    g[i] = 0;
    l = N + 1, r = mm - 1;
    if (l <= r) {
      t = sum_py[r] - (l == 0 ? 0 : sum_py[l - 1]);
      g[i] += t;
    }
    l = L, r = i - 1;
    if (l <= r) {
      t = sum_py[r] - (l == 0 ? 0 : sum_py[l - 1]);
      g[i] += t;
    }

    dp[i] = max(f[i], g[i]);
    if (i > N) dp[i] = 0;
    // debug(i, f[i], g[i]);
    sum_dp[i] = dp[i];
    if (i < mm - 1) sum_dp[i] += sum_dp[i + 1];
  }
  cout << fixed << setprecision(10) << dp[0] << '\n';

  return 0;
}

Submission Info

Submission Time
Task F - Black Jack
User xindubawukong
Language C++ 20 (gcc 12.2)
Score 550
Code Size 1572 Byte
Status AC
Exec Time 13 ms
Memory 21880 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 550 / 550
Status
AC × 2
AC × 22
Set Name Test Cases
Sample 00_sample_01.txt, 00_sample_02.txt
All 00_sample_01.txt, 00_sample_02.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 1 ms 3748 KiB
00_sample_02.txt AC 13 ms 21796 KiB
01_test_01.txt AC 8 ms 12604 KiB
01_test_02.txt AC 9 ms 12540 KiB
01_test_03.txt AC 7 ms 12600 KiB
01_test_04.txt AC 1 ms 3832 KiB
01_test_05.txt AC 3 ms 5892 KiB
01_test_06.txt AC 6 ms 11576 KiB
01_test_07.txt AC 5 ms 9520 KiB
01_test_08.txt AC 3 ms 5520 KiB
01_test_09.txt AC 7 ms 11576 KiB
01_test_10.txt AC 7 ms 12032 KiB
01_test_11.txt AC 11 ms 17336 KiB
01_test_12.txt AC 9 ms 13392 KiB
01_test_13.txt AC 9 ms 13860 KiB
01_test_14.txt AC 13 ms 21272 KiB
01_test_15.txt AC 10 ms 15492 KiB
01_test_16.txt AC 7 ms 12492 KiB
01_test_17.txt AC 13 ms 21880 KiB
01_test_18.txt AC 10 ms 16792 KiB
01_test_19.txt AC 8 ms 13704 KiB
01_test_20.txt AC 12 ms 20744 KiB