Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
32345 22级廖思学 【S】T1 C++ 运行超时 85 1000 MS 9644 KB 1190 2024-09-08 15:52:15

Tests(17/20):


#include<bits/stdc++.h> using namespace std; #define int long long const int N=1e5+10,M=998244353; int n,m,k,ans,a[N],b[N],pra[N],prb[N]; map<int,int>mp; signed main(){ cin>>n>>m>>k; for(int i=1;i<=n;i++){ cin>>a[i]; pra[i]=pra[i-1]+a[i]; } for(int i=1;i<=m;i++){ cin>>b[i]; prb[i]=prb[i-1]+b[i]; } for(int d=1;d<=k;d++){ if(k%d==0){ // cout<<"!"<<d<<endl; mp.clear();mp[0]=1; // for(int i=1;i<=n;i++)mp[pra[i]-d]=0; // for(int i=1;i<=m;i++)mp[prb[i]-d]=0; int cta=0,ctb=0; for(int i=1;i<=n;i++){ // if(mp[pra[i]-d]>0)cout<<"?"<<pra[i]-d<<" "<<mp[pra[i]-d]<<" "<<i<<endl; cta+=mp[pra[i]-d];cta%=M; // cout<<mp[pra[i]]<<" "; mp[pra[i]]++; // cout<<pra[i]<<" "<<mp[pra[i]]<<endl; } // cout<<endl; mp.clear();mp[0]=1; for(int i=1;i<=m;i++){ // if(mp[prb[i]-k/d]>0)cout<<"?"<<prb[i]-k/d<<" "<<mp[prb[i]-k/d]<<" "<<i<<endl; ctb+=mp[prb[i]-k/d];cta%=M; // cout<<mp[prb[i]]<<" "; mp[prb[i]]++; // cout<<prb[i]<<" "<<mp[prb[i]]<<endl; } // cout<<cta<<" "<<ctb<<endl; ans+=(cta*ctb)%M;ans%=M; } } cout<<ans<<endl; return 0; } /* 3 4 4 0 1 1 1 1 0 1 */


测评信息: