Cod sursa(job #1106474)
| Utilizator | Data | 12 februarie 2014 20:44:07 | |
|---|---|---|---|
| Problema | Divk | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.49 kb |
#include<iostream>
#include<fstream>
#define Nmax 500002
using namespace std;
long X[Nmax];
long N;
long K, A, B;
long Y[Nmax];
long s;
int main() {
ifstream f("divk.in");
ofstream g("divk.out");
f >> N;
f >> K;
f >> A;
f >> B;
for ( int i = 1; i <= N; i++ ) {
f >> X[i];
X[i] = ( X[i - 1] + X[i] ) % K;
if ( i >= A ) {
Y[X[i - A]]++;
}
if ( i > B ) {
Y[X[i - B + 1]]--;
}
s += Y[X[i]];
}
g << s;
f.close();
g.close();
return 0;
}
