QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#398848#8049. Equal SumsErayWA 2068ms19848kbC++141.3kb2024-04-25 19:06:102024-04-25 19:06:10

Judging History

你现在查看的是最新测评结果

  • [2024-04-25 19:06:10]
  • 评测
  • 测评结果:WA
  • 用时:2068ms
  • 内存:19848kb
  • [2024-04-25 19:06:10]
  • 提交

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'