#include <cstdio>
using namespace std;
long long sum1[100005][2], sum2[100005][2], sum3[100005][2], sum4[100005][2];
long long number[100005], color[100005];
int main()
{
int n, m;
scanf("%d %d", &n, &m);
long long i;
for (i = 1; i <= n; i++)
scanf("%d", &number[i]);
for (i = 1; i <= n; i++)
scanf("%d", &color[i]);
long long tot = 0;
long long t1, t2;
for (i = 1; i <= n; i++)
{
t1 = color[i];
t2 = i % 2;
tot += sum1[t1][t2];
tot %= 10007;
tot += (sum2[t1][t2] * number[i]) % 10007;
tot %= 10007;
tot += (((sum3[t1][t2] * i) % 10007) * number[i]) % 10007;
tot %= 10007;
tot += (sum4[t1][t2] * i) % 10007;
tot %= 10007;
sum1[t1][t2] += (i * number[i]) % 10007;
sum1[t1][t2] %= 10007;
sum2[t1][t2] += i;
sum2[t1][t2] %= 10007;
sum3[t1][t2]++;
sum3[t1][t2] %= 10007;
sum4[t1][t2] += number[i];
sum4[t1][t2] %= 10007;
}
printf("%lld", tot);
return 0;
}
链接描述