Cod sursa(job #1106482)

Utilizator s1mpMihai Alexandru s1mp Data 12 februarie 2014 20:47:15
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.49 kb
#include<iostream>
#include<fstream>

#define Nmax 500002

using namespace std;

long X[Nmax];
long N;
long K, A, B;
long Y[Nmax];
long s;

int main() {
	ifstream f("divk.in");
	ofstream g("divk.out");
	f >> N;
	f >> K;
	f >> A;
	f >> B;
	for ( int i = 1; i <= N; i++ ) {
		f >> X[i];
		X[i] = ( X[i - 1] + X[i] ) % K;
		if ( i >= A ) {
			Y[X[i - A]]++;
		}
		if ( i > B ) {
			Y[X[i - B - 1]]--;
		}
		s += Y[X[i]];
	}
	g << s;
	f.close();
	g.close();
	return 0;
}