记录编号 589027 评测结果 AATEEEWEWE
题目名称 雨滴之歌 最终得分 20
用户昵称 Gravatarwdsjl 是否通过 未通过
代码语言 C++ 运行时间 3.131 s
提交时间 2024-07-02 16:18:53 内存使用 309.85 MiB
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;

const int N = 5000;

long long n,m,a[N],b[N],vis[N][N],mapp[N][N],res,used[N];

void dfs(int x,int y){
    int xx=x+1,yy=y;
    if(xx<=n&&yy<=m&&vis[xx][yy]==0&&mapp[xx][yy]!=1){
        vis[xx][yy]=1;
        if(yy==m)res++;
        dfs(xx,yy);
    }
    xx=x,yy=y+1;
    if(xx<=n&&yy<=m&&vis[xx][yy]==0&&mapp[xx][yy]!=1){
        vis[xx][yy]=1;
        if(yy==m)res++;
        dfs(xx,yy);
    }
}

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