提交时间:2024-09-08 14:50:23
运行 ID: 32301
#include<bits/stdc++.h> using namespace std; const int N = 1e5+10,md = 998244353; #define int long long int n,m,k,a[N],b[N],sum[N],sum2[N]; int ans; map<int,int> mp; signed main(){ ios::sync_with_stdio(false); cin>>n>>m>>k; for(int i=1;i<=n;i++){ cin>>a[i]; sum[i]=sum[i-1]+a[i]; } for(int i=1;i<=m;i++){ cin>>b[i]; sum2[i]=sum2[i-1]+b[i]; } for(int i=1;i<=sqrt(k);i++){ if(k%i==0){ int z=k/i; int x=0; mp.clear(); mp[0]=1; for(int j=1;j<=n;j++){ if(i<=sum[j]) x=(x%md+mp[sum[j]-i]%md); mp[sum[j]]++; } mp.clear(); mp[0]=1; int y=0; for(int j=1;j<=m;j++){ if(z<=sum2[j]) y=(y%md+mp[sum2[j]-z]%md); mp[sum2[j]]++; } //cout<<x<<" "<<y<<endl; ans=(ans%md+x%md*y%md)%md; if(i==z) continue; mp.clear(); mp[0]=1; x=0; for(int j=1;j<=n;j++){ if(z<=sum[j]) x=(x%md+mp[sum[j]-z]%md); mp[sum[j]]++; } mp.clear(); y=0; for(int j=1;j<=m;j++){ if(i<=sum2[j]) y=(y%md+mp[sum2[j]-i]%md); mp[sum2[j]]++; } //cout<<x<<" "<<y<<endl; ans=(ans%md+x%md*y%md)%md; } } cout<<ans<<endl; return 0; }