Cod sursa(job #1237316)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 3 octombrie 2014 20:17:58
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include<cstdio>
#define Nmax 500010
#define Kmax 100010
using namespace std;

int R[Kmax], S[Nmax], N, K, A, B;
long long sol;
 
int main()
{
    freopen("divk.in", "r", stdin);
    freopen("divk.out", "w", stdout);
 
    scanf("%d %d %d %d", &N, &K, &A, &B);
 
	for (int i = 1 ; i <= N ; i++) {
		scanf("%d", &S[i]);
		S[i] = (S[i] + S[i-1]) % K;
	}

	for (int i = 1 ; i <= N ; i++) {
		if (i >= A) R[S[i - A]]++;
		if (i > B) R[S[i - B - 1]]--;
		sol += R[S[i]];
	}

    printf("%lld", sol);
 
    return 0;
}