提交时间:2024-09-08 15:29:24

运行 ID: 32341

#include<bits/stdc++.h> #define int long long using namespace std; int n,m; int n1,n2; int k,ans; int a[100005]; int b[100005]; int sp; int check(int x,int y){ int s1=0,s2=0; for(int i=x+1;i<=n1;i++){ s1+=a[i]*a[i-x]%998244353; s1%=998244353; } for(int i=y+1;i<=n2;i++){ s2+=b[i]*b[i-y]%998244353; s2%=998244353; } return s1%998244353*s2%998244353; } signed main(){ cin>>n>>m>>k; int cnt=0; for(int i=1;i<=n;i++){ cin>>sp; if(sp) a[++n1]=i-cnt,cnt=i; } a[++n1]=n-cnt+1; cnt=0; for(int i=1;i<=m;i++){ cin>>sp; if(sp) b[++n2]=i-cnt,cnt=i; } b[++n2]=m-cnt+1; for(int i=1;i<=sqrt(k);i++){ if(k%i!=0){ continue; } ans+=check(i,k/i)+(i!=k/i?check(k/i,i):0); ans%=998244353; } cout<<ans<<endl; return 0; }