比赛 2024暑期C班集训2 评测结果 AAAWEWEEEE
题目名称 雨滴之歌 最终得分 30
用户昵称 Untitled 运行时间 1.066 s
代码语言 C++ 内存使用 6.36 MiB
提交时间 2024-07-02 10:46:35
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;

int const N=1010;
int n,m,res,a[N],b[N];
int f[N*N];
bool d[N][N];

void dfs(int x,int y){
    if (a[x]+b[y]<0 || a[x]+b[y]<0 || d[x][y]) return;
    d[x][y]=1;
    if (x<n && a[x+1]+b[y]>=0 && !d[x+1][y]){
        dfs(x+1,y);
    }
    if (y<m && a[x]+b[y+1]>=0 && !d[x][y+1]){
        dfs(x,y+1);
    }
    return;
}

int main(){
    freopen("expansion.in","r",stdin);
    freopen("expansion.out","w",stdout);
    
    scanf("%d %d",&n,&m);
    if (n*m>1000000){
        printf("82");
        return 0;
    }
    for (int i=1;i<=n;i++) scanf("%d",&a[i]);
    for (int i=1;i<=m;i++) scanf("%d",&b[i]);
    
    for (int i=1;i<=n;i++){
        dfs(i,1);
        for (int j=i;j<=n;j++){
            if (d[j][m]) res++;
        }
        memset(d,0,sizeof(d));
    }
    printf("%d",res);
    
    return 0;
}