1569.cpp

来自「平时acm训练时ac的源代码」· C++ 代码 · 共 38 行

CPP
38
字号
#include <stdio.h> 
#include <string.h> 
#define MAX_N 10000 
#define MAX_C 5000 
int main( void ){ 

   int N,M,i,sum,num[MAX_N]; 
   int mod[MAX_N],count[MAX_C]; 

   while( scanf( "%d%d",&N,&M )!=EOF ){ 

      for( i=0;i<N;i++ ) 
         scanf( "%d",&num[i] ); 

      sum = 0; 
      memset( count,0,M*sizeof(int) ); 
      mod[0] = num[0]%M; 
      count[mod[0]]++; 
      if( !mod[0] ) 
         sum++; 

      for( i=1;i<N;i++ ){ 
         mod[i] = (num[i]+mod[i-1])%M; 
         if( !mod[i] ) 
            sum++;                  count[mod[i]]++; 
      } 

      for( i=0;i<M;i++ ){ 

         if( count[i]>1 ) 
            sum += count[i]*(count[i]-1)/2; 
      } 

      printf( "%d\n",sum ); 
   } 

   return 0; 
} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?