Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
32310 | 李羽乔 | 【S】T1 | C++ | 解答错误 | 90 | 251 MS | 2632 KB | 1230 | 2024-09-08 15:01:34 |
#include<bits/stdc++.h> using namespace std; const int N = 1e5+10,md = 998244353; int n,m,k,a[N],b[N],sum[N],sum2[N]; long long int mp[N]; long long int ans; 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(long long int i=1;i<=sqrt(k);i++){ if(k%i==0){ long long int z=k/i; long long int x=0; for(int j=0;j<=n;j++) mp[j]=0; for(int j=0;j<=n;j++){ if(i<=sum[j]) x=(x%md+mp[sum[j]-i]%md); mp[sum[j]]++; } for(int j=0;j<=n;j++) mp[j]=0; long long int y=0; for(int j=0;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; for(int j=0;j<=n;j++) mp[j]=0; x=0; for(int j=0;j<=n;j++){ if(z<=sum[j]) x=(x%md+mp[sum[j]-z]%md); mp[sum[j]]++; } for(int j=0;j<=n;j++) mp[j]=0; y=0; for(int j=0;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; }