Pagini recente » Cod sursa (job #52907) | Cod sursa (job #990629) | Cod sursa (job #2198763) | Cod sursa (job #623896) | Cod sursa (job #1649919)
# include <stdio.h>
# include <stdlib.h>
# define MAXN 500000
# define MAXK 100000
int v[MAXN + 1];
int rest[MAXK];
int main()
{
FILE *fin = fopen( "divk.in", "r" ), *fout = fopen( "divk.out", "w" );
int n, k, a, b, s, i;
fscanf( fin, "%d%d%d%d", &n, &k, &a, &b );
s = 0;
for ( i = 1; i <= n; i ++ ) {
fscanf( fin, "%d", &v[i] );
v[i] = ( v[i] + v[i - 1]) % k;
if ( i - b - 1 >= 0 )
rest[v[i - b - 1]] --;
if ( i - a >= 0 )
rest[v[i - a]] ++;
s += rest[v[i]];
}
fprintf( fout, "%d", s );
fclose( fin );
fclose( fout );
return 0;
}