Cod sursa(job #2618025)
Utilizator | Marcu Sebastian Sebastian27 | Data | 23 mai 2020 15:27:33 |
---|---|---|---|
Problema | Divk | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.62 kb |
#include <fstream>
using namespace std;
ifstream in("divk.in");
ofstream out("divk.out");
const int N=500005;
int sp[N], divk[N];
int main()
{
int x, n, i, k, a, b, poz;
long long sum=0;
in>>n>>k>>a>>b;
for (i=1; i<=n; i++)
{
in>>x;
sp[i]=sp[i-1]+x;
sp[i]%=k;
}
i=1;
while (i<=n)
{
if (i>=a)
{
poz=i-a;
divk[sp[poz]]++;
}
if (i>b)
{
poz=i-b-1;
divk[sp[poz]]--;
}
sum+=divk[sp[i]];
i++;
}
out<<sum<<'\n';
return 0;
}