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 |
|
|
| 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 |