Cod sursa(job #1674559)
| Utilizator | Data | 4 aprilie 2016 18:51:20 | |
|---|---|---|---|
| Problema | Divk | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <fstream>
int v1[500001];
int v2[500001];
int main() {
std::ifstream fin("divk.in");
int n, k, a, b;
fin >> n >> k >> a >> b;
for (int i=1; i<=n; i++)
{
fin >> v1[i];
v1[i] += v1[i-1];
v1[i] %= k;
}
fin.close();
long long s=0;
for (int i=a; i<=n; i++) {
v2[ v1[i-a] ]++;
if (i > b)
v2[ v1[i-b-1] ]--;
s+=v2[ v1[i] ];
}
std::ofstream fout("divk.out");
fout << s << std::endl;
fout.close();
}