Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
32296 李羽乔 【S】T1 C++ 解答错误 15 1000 MS 4200 KB 1194 2024-09-08 14:39:09

Tests(3/20):


#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 ans; map<int,int> mp; int 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; long long int x=0; mp[0]=1; for(int j=1;j<=n;j++){ if(i<=sum[j]) x=(x%md+(long long)mp[sum[j]-i]%md); mp[sum[j]]++; } mp.clear(); mp[0]=1; long long int y=0; for(int j=1;j<=m;j++){ if(z<=sum2[j]) y=(y%md+(long long)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+(long long)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+(long long)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; }


测评信息: