Cod sursa(job #2333486)
Utilizator | Data | 1 februarie 2019 11:06:35 | |
---|---|---|---|
Problema | Divk | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <fstream>
#define NMAX 500000
using namespace std;
ifstream fin ( "divk.in" );
ofstream fout ( "divk.out" );
long long n, k, a, b, i, j, x[1 + NMAX], ans, nr;
long long rest[1 + NMAX];
int main() {
fin >> n >> k >> a >> b;
for ( i = 1; i <= n; i++ ) {
fin >> nr;
x[i] = ( nr + x[i - 1] ) % k;
if ( i >= a )
rest[x[i - a]]++;
if ( i - b >= 1 )
rest[x[i - b - 1]]--;
ans += rest[x[i]];
}
fout << ans;
}