Pagini recente » Cod sursa (job #1798656) | Cod sursa (job #2989322) | Cod sursa (job #2356836) | Cod sursa (job #1679683) | Cod sursa (job #478404)
Cod sursa(job #478404)
#include<iostream>
#include<fstream>
using namespace std;
long long v[500010];
int r[100010];
int main(){
ifstream f("divk.in");
ofstream g("divk.out");
int n, a, b, k, x, i, poza, pozb, rest;
f>>n>>k>>a>>b;
long long nr = 0;
f>>x;
v[1] = x;
for (i = 2; i <= n; i++){
f>>x;
v[i] = v[i-1]+x;
}
if (v[a]%k == 0)
nr++;
poza = 1;
pozb = 1;
r[v[1]%k]++;
for (i = a+1; i <= n; i++){
rest = v[i]%k;
nr = nr+r[rest];
if (i <= b && v[i]%k == 0)
nr++;
pozb++;
r[v[pozb]%k]++;
if (pozb > b-a+1){
r[v[poza]%k]--;
poza++;
}
}
g<<nr<<'\n';
return 0;
}