Cod sursa(job #3137326)

Utilizator Ilie_MityIlie Dumitru Ilie_Mity Data 12 iunie 2023 16:42:53
Problema Divk Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.51 kb
//Ilie Dumitru
#include<cstdio>
const int NMAX=500005;

int v[NMAX];
int cnt[NMAX];

int main()
{
	FILE* f=fopen("divk.in", "r"), *g=fopen("divk.out", "w");
	//FILE* f=stdin, *g=stdout;
	int i, N, a, b, k, sum=0;
	long long int ans=0;

	fscanf(f, "%d%d%d%d", &N, &k, &a, &b);
	for(i=0;i<N;++i)
	{
		fscanf(f, "%d", v+i);
		sum=v[i]=(v[i]+sum)%k;
		if(i>=b)
			--cnt[v[i-b]];
		ans+=cnt[v[i]];
		if(i>=a-1)
			++cnt[v[i-a+1]];
	}

	fprintf(g, "%lld\n", ans);

	fclose(f);
	fclose(g);
	return 0;
}