```
#include <bits/stdc++.h>
#define oddc (color[i] << 1 | 1)
#define evenc (color[i] << 1)
using namespace std;
const int MOD = 10007;
const int S = 1e5 + 5;
typedef long long LL;
int n, m;
LL ans;
LL number[S], color[S];
LL sum[2 * S];
vector<LL> e[2 * S];
int main() {
// freopen("P2671_6.in", "r", stdin);
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> number[i];
}
for (int i = 1; i <= n; i++) {
cin >> color[i];
}
for (int i = 1; i <= n; i++) {
if (i & 1) {
e[oddc].push_back(i);
sum[oddc] = (sum[oddc] + number[i]) % MOD;
} else {
e[evenc].push_back(i);
sum[evenc] = (sum[evenc] + number[i]) % MOD;
}
}
for (int i = 2; i <= (m << 1 | 1); i++) {
if (e[i].size() > 1) {
for (int j = 0; j < e[i].size(); j++) {
LL idx = e[i][j];
LL nsum = (sum[i] + ((e[i].size() - 2) * number[idx]) % MOD) % MOD;
ans = (ans + idx * nsum % MOD) % MOD;
}
}
}
cout << ans;
return 0;
}
by 1234567_scp @ 2023-09-24 23:20:39
@[1234567_scp](/user/368859) OOOOOOOOOOOOrz,wssb,闲着没事乱取模
by __LePetitPrince__ @ 2023-09-25 00:37:37