QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#398857 | #8049. Equal Sums | Eray | WA | 1824ms | 19872kb | C++14 | 1.3kb | 2024-04-25 19:13:34 | 2024-04-25 19:13:36 |
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];
LL sum(int idx1, int idx2, int l, int r, int ll, int rr) {
l = std::max(l, ll);
r = std::min(r, rr);
if(l > r) return 0;
return g[idx1][idx2][r] - g[idx1][idx2][l - 1];
}
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] += sum(~i & 1, j, k - ar[i], k - al[i], -500, 0)) %= MOD;
if(j) (f[i & 1][j][k] += sum(i & 1, j - 1, k + bl[j], k + br[j], 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
*/
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 19872kb
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: 1824ms
memory: 19844kb
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'