Pagini recente » Monitorul de evaluare | Cod sursa (job #2829280) | Cod sursa (job #3126831) | Cod sursa (job #2778912) | Cod sursa (job #660969)
Cod sursa(job #660969)
#include <fstream>
#define l 100005
using namespace std;
ifstream f("divk.in");
ofstream g("divk.out");
int H[l][50];
long long S,k,n,A,lim,B,i,rez,x,pe;
long long bag(long long val,long long poz)
{
long long R=val%k;
H[R][0]++;
H[R][H[R][0]]=poz;
}
long long sum(long long val,long long lo,long long hi)
{
long long R=val%k,p=0,s=0;
for(p=1; H[R][p]&&H[R][p]<=hi; p++) if (H[R][p]>=lo&&H[R][p]<=hi) s++;
return s;
}
int main()
{
f>>n>>k>>A>>B;
for(i=1; i<=n; i++)
{
f>>x;
S+=x;
if (S%k==0&&i>=A&&i<=B) rez++;
rez+=sum(S,i-B,i-A);
bag(S,i);
}
g<<rez;
f.close();
g.close();
return 0;
}