P2671 [NOIP2015 普及组] 求和
#include<bits/stdc++.h>
#define ll long long
#define f(a,b,c) for(ll a=b;a<=c;++a)
#define F(a,b,c) for(ll a=b;a>=c;--a)
using namespace std;
ll m,n,x,y,ans;
ll a[100005],b[100005],f[100005];
ll a1[1000005][10],a2[1000005][10],a3[1000005][10],a4[1000005][10];
int main()
{
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
cin>>n>>m;
f(i,1,n) cin>>a[i];
f(i,1,n) cin>>b[i];
f(i,1,n)
{
y=i%2;
ans+=a1[b[i]][y];
ans%=10007;
ans+=a2[b[i]][y]*a[i];
ans%=10007;
ans+=a3[b[i]][y]*i;
ans%=10007;
ans+=a4[b[i]][y]*i%10007*a[i]%100007;
ans%=10007;
a1[b[i]][y]+=1LL*i*a[i]%10007;
a1[b[i]][y]%=10007;
a2[b[i]][y]+=i;
a2[b[i]][y]%=10007;
a3[b[i]][y]+=a[i];
a3[b[i]][y]%=10007;
++a4[b[i]][y];
a4[b[i]][y]%=10007;
}
cout<<ans;
return 0;
}