Cod sursa(job #566120)

Utilizator pykhNeagoe Alexandru pykh Data 28 martie 2011 17:42:15
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<cstdio>
using namespace std;

const char in[]="divk.in";
const char out[]="divk.out";

const int Max_N = 500100;

int v[Max_N], s[Max_N], N, A, B, K, x;
long long sol;

int main()
	{
		freopen(in,"r",stdin);
		freopen(out,"w",stdout);
		scanf("%d %d %d %d", &N , &K, &A, &B);
			for(int i = 1 ; i <= N ; ++i)
			{
				scanf("%d", &x);
				s[i] = (s[i - 1] + x) % K;
				if(i - B - 1 >= 0 ) --v[ s[ i - B - 1 ] ];
				if(i - A >= 0 ) ++v[ s[ i - A ] ];
				sol += v[ s[ i ] ];
			}
			printf("%d\n", sol);
		return 0;
}