Pagini recente » Cod sursa (job #643977) | Cod sursa (job #2052668) | Cod sursa (job #1830080) | Cod sursa (job #3269737) | Cod sursa (job #1319091)
#include <cstdio>
using namespace std;
#define Nmax 500001
FILE *f = fopen("divk.in","r");
FILE *g = fopen("divk.out","w");
int s[Nmax], ap[Nmax];
int main(){
int N, K, A, B;
long long sol = 0;
fscanf(f,"%d%d%d%d",&N,&K,&A,&B);
for(int i = 1; i <= N; ++i){
fscanf (f,"%d",&s[i]);
s[i] = (s[i] + s[i-1]) % K;
}
for(int i = 1; i <= N; ++i){
if( i - A >= 0 ) ap[s[i-A]]++;
if( i - B > 0 ) ap[s[i-B-1]]--;
sol += ap[s[i]];
}
fprintf (g,"%lld\n",sol);
return 0;
}