Pagini recente » Cod sursa (job #979753) | Cod sursa (job #1767702) | Cod sursa (job #2187057) | Cod sursa (job #2246195) | Cod sursa (job #1383833)
#include<fstream>
using namespace std;
ifstream in("divk.in");
ofstream out("divk.out");
const int NMAX = 500000;
typedef long long I64;
int s[NMAX+2], f[NMAX+2];
int N, K, A, B;
I64 Ans = 0;
int main() {
in >> N >> K >> A >> B;
for( int i = 1; i <= N; ++i ) {
in >> s[i];
s[i] = (s[i] + s[i-1]) % K;
if( A <= i && i <= B ) ++f[ s[i] ];
}
for( int i = 0; i <= N-A; ++i ) {
int q = s[i];
Ans += f[q];
-- f[ s[i+A] ];
if( i+B+1 <= N ) ++ f[ s[i+B+1] ];
}
out << Ans << '\n';
return 0;
}