Pagini recente » Cod sursa (job #813617) | Cod sursa (job #1582) | Cod sursa (job #1231621) | Cod sursa (job #706711) | Cod sursa (job #715942)
Cod sursa(job #715942)
#include <iostream>
#include <fstream>
using namespace std;
int v[500005], s[500005];
int main() {
//ifstream f("divk.in");
freopen("divk.in","r",stdin);
ofstream g("divk.out");
int n, a, b, k, i, j, rez=0;
//f>>n>>k>>a>>b;
scanf("%d%d%d%d",&n,&k,&a,&b);
for(i=1; i<=n; i++) { scanf("%d",&v[i]); s[i]=s[i-1]+v[i]; }
j=n;
while(j>=0) {
i=j;
//while(j-i+1 <a) i--; //trebuie sa ating lungimea minima, si de acolo cobor <- idee foarte tampita
i=j-a+1; //asta face ACEEASI chestie
while((j-i+1)<=b && i>0) {
if((s[j]-s[i-1])%k==0) {
//for(int q=i; q<=j; q++) g<<v[q]<<" "; g<<"\n";
rez++;
}
i--;
}
j--;
}
g<<rez;
// f.close();
g.close();
return 0;
}