Cod sursa(job #783139)
Utilizator | Data | 2 septembrie 2012 12:19:34 | |
---|---|---|---|
Problema | Divk | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.46 kb |
#include <fstream>
using namespace std;
#define DIM 500010
int S[DIM];
int T[DIM];
int N, K, A, B, V, i;
long long sol;
int main() {
ifstream f("divk.in");
ofstream g("divk.out");
f>>N>>K>>A>>B;
for (i=1;i<=N;i++) {
f>>V;
S[i] = (V + S[i-1]) % K;
}
for (i=1;i<=N;i++) {
if (i-B >= 1)
T[S[i-B]]--;
if (i-A+1 >= 1)
T[S[i-A+1]]++;
if (i >= A) {
sol += T[S[i]];
}
}
g<<sol;
return 0;
}