Pagini recente » Diferente pentru problema/sume intre reviziile 6 si 5 | Cod sursa (job #2752308) | Diferente pentru problema/margiki intre reviziile 2 si 3 | Diferente pentru problema/teams intre reviziile 8 si 12 | Cod sursa (job #2421120)
#include <fstream>
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
int n,i,k,a,b,f[100001],v[500001];
long long sol;
int main(){
fin>>n>>k>>a>>b;
for(i=1;i<=n;i++){
fin>>v[i];
v[i]+=v[i-1];
v[i]%=k;
}
for(i=a;i<=n;i++){
f[v[i-a]]++;
if(i>b)f[v[i-b-1]]--;
sol+=f[v[i]];
}
fout<<sol;
return 0;
}