Submission #26027655


Source Code Expand

#include <bits/stdc++.h>
typedef long long ll;
const int N = 2e5 + 5, K = 305, MOD = 998244353;
int n, k, a[N], fac[K], ifac[K], b[K], pa[N];
int inv(int a) {
	int res = 1, p = MOD - 2;
	while(p) {
		if(p & 1) res = (ll)res * a % MOD;
		a = (ll)a * a % MOD; p >>= 1;
	}
	return res;
}
const int inv2 = inv(2);
int main() {
	scanf("%d %d", &n, &k);
	fac[0] = 1;
	for(int i = 1; i <= k; i++) fac[i] = (ll)fac[i - 1] * i % MOD;
	ifac[k] = inv(fac[k]);
	for(int i = k; i; i--) ifac[i - 1] = (ll)ifac[i] * i % MOD;
	for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
	std::fill(pa + 1, pa + n + 1, 1);
	for(int i = 0; i <= k; i++) {
		for(int j = 1; j <= n; j++) {
			b[i] = (b[i] + pa[j]) % MOD;
			pa[j] = (ll)pa[j] * a[j] % MOD;
		}
		b[i] = (ll)b[i] * ifac[i] % MOD;
	}
	int prod2 = 1;
	for(int x = 1; x <= k; x++) {
		prod2 = (prod2 << 1) % MOD;
		int ans = 0;
		for(int i = 0; i <= x; i++) {
			ans = (ans + (ll)b[i] * b[x - i]) % MOD;
		}
		ans = (ll)ans * fac[x] % MOD;
		ans = (ans - (ll)prod2 * b[x] % MOD * fac[x] % MOD + MOD) % MOD;
		printf("%lld\n", (ll)ans * inv2 % MOD);
	}
	return 0;
}

Submission Info

Submission Time
Task D - Powers
User syksykCCC
Language C++ (GCC 9.2.1)
Score 600
Code Size 1134 Byte
Status AC
Exec Time 242 ms
Memory 5352 KiB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:15:7: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   15 |  scanf("%d %d", &n, &k);
      |  ~~~~~^~~~~~~~~~~~~~~~~
./Main.cpp:20:35: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   20 |  for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
      |                              ~~~~~^~~~~~~~~~~~~

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 6 ms 3700 KiB
00_sample_02 AC 2 ms 3696 KiB
00_sample_03 AC 5 ms 3664 KiB
10_small_01 AC 2 ms 3692 KiB
10_small_02 AC 2 ms 3612 KiB
10_small_03 AC 1 ms 3696 KiB
10_small_04 AC 2 ms 3796 KiB
10_small_05 AC 2 ms 3560 KiB
10_small_06 AC 2 ms 3728 KiB
10_small_07 AC 3 ms 3608 KiB
10_small_08 AC 2 ms 3564 KiB
10_small_09 AC 2 ms 3616 KiB
10_small_10 AC 4 ms 3612 KiB
20_random_01 AC 79 ms 4272 KiB
20_random_02 AC 93 ms 4224 KiB
20_random_03 AC 12 ms 3944 KiB
20_random_04 AC 100 ms 4528 KiB
20_random_05 AC 55 ms 4924 KiB
20_random_06 AC 151 ms 4760 KiB
20_random_07 AC 57 ms 4492 KiB
20_random_08 AC 146 ms 4896 KiB
20_random_09 AC 36 ms 5088 KiB
20_random_10 AC 71 ms 5108 KiB
30_max_01 AC 239 ms 5136 KiB
30_max_02 AC 235 ms 5300 KiB
30_max_03 AC 239 ms 5352 KiB
30_max_04 AC 238 ms 5256 KiB
30_max_05 AC 233 ms 5352 KiB
31_max_01 AC 242 ms 5260 KiB
31_max_02 AC 240 ms 5264 KiB