k倍区间(c++实现)

#include
using namespace std;
const int N=100010;
long long int q[N],s[N];
int n,k;
long long int res;
int main(){
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++) {
        scanf("%lld",&q[i]);
        q[i]+=q[i-1];
    }
    s[0]=1;
    for(int i=1;i<=n;i++){
        res += s[q[i]%k];
        s[q[i]%k]++;
    }
    
    
    printf("%lld",res);
    
}

你可能感兴趣的:(算法,c++,算法,开发语言)