QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#398848 | #8049. Equal Sums | Eray | WA | 2068ms | 19848kb | C++14 | 1.3kb | 2024-04-25 19:06:10 | 2024-04-25 19:06:10 |
Judging History
answer
#include <bits/stdc++.h>
typedef long long LL;
const int N = 500 + 5;
const LL MOD = 998244353;
int n, m;
int al[N], ar[N], bl[N], br[N];
template<typename T, int L, int R>
struct Array {
T a[R - L + 1];
T &operator[](int x) { return a[x - L]; }
const T &operator[](int x) const { return a[x - L]; }
};
Array<LL, -N, N> f[2][N], g[2][N];
int main() {
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; i++) scanf("%d%d", &al[i], &ar[i]);
for(int i = 1; i <= m; i++) scanf("%d%d", &bl[i], &br[i]);
for(int i = 0; i <= n; i++) {
memset(f[i & 1], 0, sizeof(f[i & 1])), memset(g[i & 1], 0, sizeof(g[i & 1]));
for(int j = 0; j <= m; j++) for(int k = -500; k <= 500; k++) {
if(i == 0 && j == 0 && k == 0) (f[i & 1][j][k] += 1) %= MOD;
if(i) (f[i & 1][j][k] += g[~i & 1][j][std::max(std::min(k - al[i], 0), -501)] - g[~i & 1][j][std::min(std::max(k - ar[i], -500) - 1, 0)]) %= MOD;
if(j) (f[i & 1][j][k] += g[i & 1][j - 1][std::max(std::min(k + br[j], 500), 0)] - g[i & 1][j - 1][std::min(std::max(k + bl[j], 1) - 1, 500)]) %= MOD;
g[i & 1][j][k] = (g[i & 1][j][k - 1] + f[i & 1][j][k]) % MOD;
}
if(i) {
for(int j = 1; j <= m; j++) printf("%lld ", f[i & 1][j][0]);
puts("");
}
}
return 0;
} /*
2 3
1 2
2 3
1 4
2 2
1 3
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 19848kb
input:
2 3 1 2 2 3 1 4 2 2 1 3
output:
2 0 0 3 4 4
result:
ok 6 numbers
Test #2:
score: -100
Wrong Answer
time: 2068ms
memory: 19808kb
input:
500 500 19 458 1 480 7 485 50 461 12 476 15 461 48 466 40 453 46 467 9 458 27 478 26 472 46 459 29 490 6 500 17 487 48 484 28 472 28 459 25 480 4 491 29 481 36 460 2 491 44 499 22 473 20 458 4 483 27 471 2 496 11 461 43 450 2 478 37 466 15 459 42 482 7 451 19 455 2 453 47 475 48 450 1 474 46 471 9 4...
output:
411 79401 9145270 673005095 -817663288 984223118 586589234 293043270 404363796 -132882629 665487988 118838806 926189944 226338288 -476764496 808644951 -212203065 340769021 177100 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
wrong answer 5th numbers differ - expected: '180581065', found: '-817663288'