Pagini recente » Cod sursa (job #1775267) | Cod sursa (job #2156428) | Cod sursa (job #3175047) | Cod sursa (job #261303) | Cod sursa (job #1015459)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("divk.in");
ofstream g ("divk.out");
int n, k, a, b;
int suma[500001], aparitii[500001];
void citeste ()
{
f>>n>>k>>a>>b;
for (int i=1; i<=n; i++)
{
f>>suma[i]; suma[i]=(suma[i]+suma[i-1])%k;
}
}
void rezolva ()
{
int rezultat=0;
for (int i=a; i<=n; i++)
{
aparitii[suma[i-a]]++;
if (i>b) aparitii[suma[i-b-1]]--;
rezultat+=aparitii[suma[i]];
}
g<<rezultat;
}
int main ()
{
citeste ();
rezolva ();
}