Submission #48574044


Source Code Expand

#include <bits/stdc++.h>

using namespace std;

const int mod = 998244353;

int add() { return 0; }

template<typename... M>
int add(int a, M... b) {
  int x = add(b...);
  return a + x - mod * (a + x >= mod);
}

int mul() { return 1; }

template<typename... M>
int mul(int a, M... b) {
  return int(1ll * a * mul(b...) % mod);
}

int pwr(int a, long long x) {
  return (x ? mul(pwr(mul(a, a), x >> 1), (x & 1 ? a : 1)) : 1);
}

int inv(int a) {
  return pwr(a, mod - 2);
}

int sub(int a, int b) {
  return a - b + mod * (a < b);
}

void inc(int &a, int b) {
  a = add(a, b);
}

void dec(int &a, int b) {
  a = sub(a, b);
}

vector<int> fact = {1}, invf = {1};

int C(int n, int k) {
  if (n < k or 0 > k) return 0;
  while (fact.size() <= n) {
    fact.push_back(mul(fact.back(), fact.size()));
    invf.push_back(inv(fact.back()));
  }
  return mul(fact[n], invf[k], invf[n - k]);
}

const int N = 3005;
int dp[N][N];
const int i2 = inv(2);

int main() {
  ios::sync_with_stdio(0);
  cin.tie(0), cout.tie(0);

  int n;
  cin >> n;
  dp[0][0] = 1;
  for (int k = 1; k < n; ++k) {
    int a = i2, b = 0;
    for (int i = 1; i <= k; ++i) {
      a = mul(a, i2);
      b = mul(i2, add(b, dp[i - 1][k - i]));
    }
    dp[k][0] = mul(b, inv(sub(1, a)));
    dp[0][k] = mul(dp[k][0], i2);
    for (int i = 1; i < k; ++i) {
      dp[i][k - i] = mul(i2, add(dp[i - 1][k - i + 1], dp[i - 1][k - i]));
    }
  }
  for (int i = 0; i < n; ++i) cout << dp[i][n - i - 1] << ' ';
  cout << '\n';

  return 0;
}

Submission Info

Submission Time
Task F - Bomb Game 2
User achvanov
Language C++ 20 (gcc 12.2)
Score 550
Code Size 1579 Byte
Status AC
Exec Time 86 ms
Memory 30964 KiB

Compile Error

Main.cpp: In function ‘int C(int, int)’:
Main.cpp:46:22: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   46 |   while (fact.size() <= n) {
      |          ~~~~~~~~~~~~^~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 550 / 550
Status
AC × 2
AC × 25
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, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 1 ms 3468 KiB
00_sample_02.txt AC 1 ms 3356 KiB
01_test_01.txt AC 1 ms 3616 KiB
01_test_02.txt AC 1 ms 3624 KiB
01_test_03.txt AC 86 ms 30956 KiB
01_test_04.txt AC 86 ms 30948 KiB
01_test_05.txt AC 26 ms 14444 KiB
01_test_06.txt AC 60 ms 24664 KiB
01_test_07.txt AC 41 ms 19664 KiB
01_test_08.txt AC 50 ms 22228 KiB
01_test_09.txt AC 65 ms 26208 KiB
01_test_10.txt AC 24 ms 13984 KiB
01_test_11.txt AC 86 ms 30964 KiB
01_test_12.txt AC 84 ms 30524 KiB
01_test_13.txt AC 82 ms 30076 KiB
01_test_14.txt AC 83 ms 30220 KiB
01_test_15.txt AC 81 ms 29876 KiB
01_test_16.txt AC 3 ms 4912 KiB
01_test_17.txt AC 2 ms 4560 KiB
01_test_18.txt AC 5 ms 6328 KiB
01_test_19.txt AC 10 ms 8500 KiB
01_test_20.txt AC 81 ms 29912 KiB
01_test_21.txt AC 61 ms 25048 KiB
01_test_22.txt AC 12 ms 9352 KiB
01_test_23.txt AC 11 ms 9160 KiB