Submission #17638835


Source Code Expand

Copy
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll MAX = 350;
ll MOD = 998244353;
ll INV[MAX] = {}, FACTORIAL[MAX] = {}, FACTORIAL_INV[MAX] = {};
void calc_init() {
INV[1] = 1;
FACTORIAL[0] = FACTORIAL[1] = 1;
FACTORIAL_INV[0] = FACTORIAL_INV[1] = 1;
for (int i = 2; i < MAX; i++) {
ll q = MOD / i, r = MOD % i;
INV[i] = (-INV[r] * q) % MOD;
INV[i] = (INV[i] + MOD) % MOD;
FACTORIAL[i] = (i * FACTORIAL[i - 1]) % MOD;
FACTORIAL_INV[i] = (INV[i] * FACTORIAL_INV[i - 1]) % MOD;
}
}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

const ll MAX = 350;
ll MOD = 998244353;
ll INV[MAX] = {}, FACTORIAL[MAX] = {}, FACTORIAL_INV[MAX] = {};

void calc_init() {
  INV[1] = 1;
  FACTORIAL[0] = FACTORIAL[1] = 1;
  FACTORIAL_INV[0] = FACTORIAL_INV[1] = 1;

  for (int i = 2; i < MAX; i++) {
    ll q = MOD / i, r = MOD % i;
    INV[i] = (-INV[r] * q) % MOD;
    INV[i] = (INV[i] + MOD) % MOD;
    FACTORIAL[i] = (i * FACTORIAL[i - 1]) % MOD;
    FACTORIAL_INV[i] = (INV[i] * FACTORIAL_INV[i - 1]) % MOD;
  }
}

vector<vector<ll>> memo(310, vector<ll>(310, -1));
ll nCk(ll n, ll k) {
  if (memo[n][k] != -1) return memo[n][k];
  ll ans = FACTORIAL[n];
  ans = (ans * FACTORIAL_INV[k]) % MOD;
  ans = (ans * FACTORIAL_INV[n - k]) % MOD;
  memo[n][k] = ans;
  return ans;
}


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

  ll N; cin >> N;
  ll K; cin >> K;
  vector<ll> A(N); for (ll i = 0; i < N; i++) cin >> A[i];

  calc_init();

  vector<vector<ll>> p(K + 1, vector<ll>(N, 1));
  for (ll i = 0; i < K; i++) {
    for (ll j = 0; j < N; j++) {
      p[i + 1][j] = (p[i][j] * A[j]) % MOD;
    }
  }
  vector<ll> s(K + 1, 0);
  for (ll i = 0; i < K + 1; i++) {
    for (ll j = 0; j < N; j++) {
      s[i] = (s[i] + p[i][j]) % MOD;
    }
  }

  for (ll i = 1; i <= K; i++) {
    ll sum = 0;
    for (ll j = 0; j <= i; j++) {
      ll temp;
      temp = (s[j] * s[i-j] - s[i] + MOD) % MOD;
      temp = temp * INV[2] % MOD;
      temp = temp * nCk(i, j) % MOD;
      sum = (sum + temp) % MOD;
    }
    cout << sum << '\n';
  }
  return 0;
}

Submission Info

Submission Time
Task D - Powers
User nakaken88
Language C++ (GCC 9.2.1)
Score 600
Code Size 1647 Byte
Status AC
Exec Time 1561 ms
Memory 477764 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 3
AC × 30
Set Name Test Cases
Sample 00_sample_01, 00_sample_02, 00_sample_03
All 00_sample_01, 00_sample_02, 00_sample_03, 10_small_01, 10_small_02, 10_small_03, 10_small_04, 10_small_05, 10_small_06, 10_small_07, 10_small_08, 10_small_09, 10_small_10, 20_random_01, 20_random_02, 20_random_03, 20_random_04, 20_random_05, 20_random_06, 20_random_07, 20_random_08, 20_random_09, 20_random_10, 30_max_01, 30_max_02, 30_max_03, 30_max_04, 30_max_05, 31_max_01, 31_max_02
Case Name Status Exec Time Memory
00_sample_01 AC 10 ms 4384 KB
00_sample_02 AC 3 ms 4268 KB
00_sample_03 AC 2 ms 4336 KB
10_small_01 AC 8 ms 4512 KB
10_small_02 AC 8 ms 4528 KB
10_small_03 AC 13 ms 4540 KB
10_small_04 AC 6 ms 4380 KB
10_small_05 AC 3 ms 4388 KB
10_small_06 AC 11 ms 4408 KB
10_small_07 AC 2 ms 4252 KB
10_small_08 AC 6 ms 4464 KB
10_small_09 AC 4 ms 4508 KB
10_small_10 AC 4 ms 4380 KB
20_random_01 AC 479 ms 149120 KB
20_random_02 AC 559 ms 173968 KB
20_random_03 AC 24 ms 8916 KB
20_random_04 AC 592 ms 185224 KB
20_random_05 AC 217 ms 65728 KB
20_random_06 AC 954 ms 297520 KB
20_random_07 AC 262 ms 80968 KB
20_random_08 AC 877 ms 273796 KB
20_random_09 AC 88 ms 26096 KB
20_random_10 AC 312 ms 95244 KB
30_max_01 AC 1561 ms 475568 KB
30_max_02 AC 1532 ms 474620 KB
30_max_03 AC 1535 ms 476188 KB
30_max_04 AC 1523 ms 471464 KB
30_max_05 AC 1498 ms 465328 KB
31_max_01 AC 1540 ms 477764 KB
31_max_02 AC 1543 ms 477736 KB


2025-04-05 (Sat)
15:37:03 +00:00