QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#478220 | #8049. Equal Sums | 11d10xy | TL | 1ms | 3972kb | C++14 | 895b | 2024-07-14 19:01:13 | 2024-07-14 19:01:13 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
using i64=long long;
constexpr i64 mod=998244353;
constexpr int M=505;
int n,m,Lx[510],Rx[510],Ly[510],Ry[510];
int f[510][510][1010];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)scanf("%d%d",&Lx[i],&Rx[i]);
for(int i=1;i<=m;i++)scanf("%d%d",&Ly[i],&Ry[i]);
f[0][0][M]=1;
for(int i=0;i<=n;i++)for(int j=0;j<=n;j++){
i64 s=0;
auto at=[&](int x,int l,int r){
return l<=x&&x<=r?f[i][j][x]:0;
};
for(int a=0;a<=10009;a++){
s=(s+at(a-Lx[i+1],0,M-1)+mod-at(a-Rx[i+1]-1,0,M-1))%mod;
(f[i+1][j][a]+=s)%=mod;
}s=0;
for(int a=1009;a>=0;a--){
s=(s+at(a+Ly[j+1],M,1009)+mod-at(a+Ry[j+1]+1,M,1009))%mod;
(f[i][j+1][a]+=s)%=mod;
}
}
for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)printf("%d%c",f[i][j][M]," \n"[j==m]);
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 3972kb
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
Time Limit Exceeded
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...