Pagini recente » Cod sursa (job #1592802) | Cod sursa (job #176788) | Cod sursa (job #1846853) | Cod sursa (job #2948990) | Cod sursa (job #726258)
Cod sursa(job #726258)
#include <fstream>
using namespace std;
ifstream F("divk.in");
ofstream G("divk.out");
#define Nmax 500011
long N,K,A,B;
long R[Nmax];
long sol1,sol2;
long Fr[Nmax];
long Fr2[Nmax];
long solve(long A,long Fr[])
{
long Sol=0;
for (long i=1;i<=N;++i)
{
++Fr[R[i]];
if (i-A>0)
--Fr[R[i-A]];
Sol+=Fr[R[i]];
}
return Sol;
}
int main()
{
F>>N>>K>>A>>B;
for (long i=1;i<=N;++i)
F>>R[i],R[i]=(R[i]+R[i-1])%K;
--A;
if ( A>0 )
sol1=solve(A,Fr);
sol2=solve(B,Fr2);
G<<sol2-sol1<<'\n';
F.close();
G.close();
return 0;
}