QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#733877 | #8049. Equal Sums | ucup-team4479 | ML | 2ms | 13944kb | C++23 | 1.4kb | 2024-11-10 21:46:55 | 2024-11-10 21:46:56 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
constexpr int N=505,M=500;
constexpr int MOD=1000000007;
int n,m;
int la[N],ra[N],lb[N],rb[N];
int poolf[N][N][M+M],*f[N][N];
int poolsum[N][N][M+M],*sum[N][N];
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr),cout.tie(nullptr);
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>la[i]>>ra[i];
for(int i=1;i<=m;i++)
cin>>lb[i]>>rb[i];
for(int i=0;i<=n;i++)
for(int j=0;j<=m;j++)
f[i][j]=&poolf[i][j][M],sum[i][j]=&poolsum[i][j][M];
f[0][0][0]=1;
for(int i=0;i<=n;i++)
for(int j=0;j<=m;j++)
{
for(int k=-M;k<=M;k++)
{
if(j>=1)
{
int l=max(k+lb[j],1),r=min(k+rb[j],M);
if(l<=r) f[i][j][k]=((long long)f[i][j][k]+sum[i][j-1][r]-sum[i][j-1][l-1]+MOD)%MOD;
}
if(i>=1)
{
int l=max(k-ra[i],-M),r=min(k-la[i],0);
if(l<=r) f[i][j][k]=((long long)f[i][j][k]+sum[i-1][j][r]-(l>-M?sum[i-1][j][l-1]:0)+MOD)%MOD;
}
sum[i][j][k]=f[i][j][k];
if(k>-M) sum[i][j][k]=(sum[i][j][k]+sum[i][j][k-1])%MOD;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<f[i][j][0]<<" ";
cout<<"\n";
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 2ms
memory: 13944kb
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
Memory 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...
output:
411 999811757 951250344 210733945 56002390 773754427 61528831 712555025 779569348 959562510 299513325 448691921 140935903 534886359 160576737 150048454 169301973 923046964 675175977 422661690 266059498 740714569 852647222 211566806 758250124 984912452 363642248 248442087 556532644 142524496 91034949...