#include <fstream> #include <iostream> using namespace std; #define MOD 10007 int main(){ int n, m, sum=0; int color[100010], number[100010]; int subSum[2][100010][4]; cin >> n >> m; for(int i = 1; i <= n; i ++){ cin >> number[i]; number[i] %= MOD; } for(int i = 1; i <= n; i ++){ cin >> color[i]; color[i] %= MOD; } for(int i = 1; i <= n; i ++){ subSum[i % 2][color[i]][0] = (subSum[i % 2][color[i]][0] + i) % MOD; subSum[i % 2][color[i]][1] = (subSum[i % 2][color[i]][1] + number[i]) % MOD; subSum[i % 2][color[i]][2] = (subSum[i % 2][color[i]][2] + 1) % MOD; subSum[i % 2][color[i]][3] = (subSum[i % 2][color[i]][3] + i * number[i]) % MOD; } for(int i = 1; i <= m; i ++) sum = (sum + (subSum[0][i][0] * subSum[0][i][1]) % MOD + ((subSum[0][i][2] - 2)*subSum[0][i][3]) % MOD + (subSum[1][i][0] * subSum[1][i][1]) % MOD + ((subSum[1][i][2] - 2)*subSum[1][i][3]) % MOD) % MOD; cout << sum << endl; return 0; } /************************************************************** Problem: 2342 User: addmmiinn Language: C++ Result: Accepted Time:265 ms Memory:5860 kb ****************************************************************/