```
include[HTML_REMOVED]
using namespace std;
typedef long long LL;
const int N = 100010;
int n,k;
LL A[N];
LL s[N],cnt[N];//cnt计算相同余数的序列的个数总和
LL res;//计算不相等的余数的个数总和
int main(){
scanf(“%d %d”,&n,&k);
cnt[0] = 1;
for(int i = 1; i <= n; i ++){
scanf("%lld",&A[i]);
s[i] = s[i - 1] + A[i];
s[i] = s[i] % k;
res += (cnt[s[i]]);
cnt[s[i]] ++;//记录序列%k不同余数的个数
//cnt[s[i]]要在res之后做,因为它是记录总数,如果下面再加回去会重复。
/*不能写成
cnt[s[i]]++;
res+=(cnt[s[i]]);
*/
//用笔写字调试一下就知道了
}
printf("%lld\n",res);
return 0;
}