Cod sursa(job #3137346)

Utilizator Ilie_MityIlie Dumitru Ilie_Mity Data 12 iunie 2023 17:14:03
Problema Divk Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.55 kb
//Ilie Dumitru
#include<cstdio>
const int NMAX=500005;

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

/*
5 3 1 2
1 2 3 4 5
*/

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=1;i<=N;++i)
	{
		fscanf(f, "%d", v+i);
		sum=v[i]=(v[i]+sum)%k;
		if(i>=a-1)
			++cnt[v[i-a+1]];
		ans+=cnt[v[i]];
		if(i>=b-1)
			--cnt[v[i-b+1]];
	}

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

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