70,021
社区成员




#include <stdio.h>
#include <stdlib.h>
int main()
{
int N,k,i,max=100000,flag[100001]={0};
scanf("%d%d",&N,&k);
int sum=0,count=0;
int *a = (int*)malloc(sizeof(int)*N);
int *s=(int*)malloc(sizeof(int)*N);
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
s[i]=sum%k;
if(max<s[i]) max=s[i];
}
free(a);
for(i=0;i<N;i++) flag[s[i]]++;
free(s);
for(i=0;i<=max;i++)
{
if(i==0) count+=flag[i]+flag[i]*(flag[i]-1)/2;
else count+=flag[i]*(flag[i]-1)/2;
}
printf("%d",count);
return 0;
}
a[100001],i,s[100001],max=100000,flag[100001]={0};