Pagini recente » Cod sursa (job #2110902) | Cod sursa (job #122039) | Cod sursa (job #1350076) | Cod sursa (job #285294) | Cod sursa (job #1072772)
#include <cstdio>
#include <cstring>
using namespace std;
int N, K, A, B;
int main(){
freopen("divk.in", "r", stdin);
freopen("divk.out", "w", stdout);
scanf("%d%d%d%d", &N, &K, &A, &B);
int num[N+1];
for(int i = 1; i <= N; ++i)
scanf("%d", &num[i]);
//num * lungime subsecv
long long sums[N+1][N+1];
memset(sums, 0, sizeof(sums));
//pt fiecare num construieste suma fiecarei subsecv care se termina in num.
for(int i = 1; i <= N; ++i)
for(int j = 1; j <= i; ++j)
sums[i][j] = sums[i-1][j-1] + num[i];
//numara care sume sunt div cu K din intervalul de lungine [A,B]
long long nrSubSecv = 0;
for(int i = 1; i <= N; ++i)
for(int j = A; j <= B; ++j)
if(sums[i][j] != 0 && sums[i][j] % K == 0) ++nrSubSecv;
printf("%lld", nrSubSecv);
fclose(stdin);
fclose(stdout);
}