Cod sursa(job #783158)

Utilizator marinMari n marin Data 2 septembrie 2012 12:42:58
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <fstream>
#include <cstdio>

using namespace std;
#define DIM 500010

int S[DIM];
int T[DIM];

int N, K, A, B, V, i;
long long sol;

int main() {
	ifstream f("divk.in");
	FILE *g = fopen("divk.out","w");

	
	f>>N>>K>>A>>B;
	for (i=1;i<=N;i++) {
		f>>V;
		S[i] = (V + S[i-1]) % K;
	}
	
	for (i=A;i<=N;i++) {
	
		
		if (i-B-1 >= 0)
			T[S[i-B-1]]--;
		if (i-A >= 0)
			T[S[i-A]]++;
		if (i >= A) {
			sol += T[S[i]];
		}
		
		
	}
	
	fprintf(g,"%lld\n",sol);
	
	return 0;
}