#include<bits/stdc++.h>
#define int long long
using namespace std;
#define mod 998244353
int qpow(int base,int p){
if(p==1) return base;
else if(p==0) return 1;
else
{
int ans=qpow(base,p/2)%mod;
long long ans1=(ans%mod*ans%mod)%mod;
if(p%2==1) ans1=(ans1%mod*base%mod)%mod;
ans1=ans1%mod;
return ans1;
}
}
int a[1000001],b[1000001];
main()
{
int n,k;
cin>>n>>k;
if(k==0) writeln(n),exit(0);
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) cin>>b[i];
int Q=0,sa=0,sb=0;
for(int i=1;i<=n;i++)
{
Q+=a[i]*b[i]%mod,Q%=mod;
sa+=a[i],sa%=mod;
sb+=b[i],sb%=mod;
}
Q=qpow(Q,k-1);
int ans=sa*sb%mod*Q%mod;
cout<<ans<<endl;
return 0;
}
整体思路和题解一摸一样,但是wa
wa的点都是负数,但是我看不出来哪里溢出了 :(