Cod sursa(job #2110831)

Utilizator marcudanfDaniel Marcu marcudanf Data 21 ianuarie 2018 13:54:27
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.43 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("divk.in");
ofstream fout("divk.out");

int v[500005];
int a, b, n, k;
long long nr, v1[500005], v2[500005];

int main(){
	fin >> n >> k >> a >> b;
	for(int i = 1; i <= n; i++){
		int x;
		fin >> x;
		v[i] = v[i - 1] + x;
		v[i] %= k;
		if(i >= a)
			v1[v[i - a]]++;
		if(i > b)
			v2[v[i - b - 1]]++;
		nr += v1[v[i]]- v2[v[i]];
	}
	fout << nr;
	cout<<nr;
	return 0;
}