桶
开一个桶,记录
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, m, suma, sum, ans, box[10000005], a[10000005], sur[10000005], pre[10000005];
signed main() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> a[i];
suma += a[i];
pre[i] = pre[i - 1] + a[i];
}
for (int i = n; i >= 1; i--) {
sur[i] = sur[i + 1] + a[i];
}
for (int i = 1; i <= n; i++) {
cin >> a[i];
sum += a[i];
sum %= m;
ans += box[sum];
ans += box[(m - sur[i + 1] % m) % m];
box[sum]++;
}
cout << ans;
return 0;
}