Cod sursa(job #1076364)
| Utilizator | Data | 10 ianuarie 2014 02:07:44 | |
|---|---|---|---|
| Problema | Divk | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <fstream>
using namespace std;
ifstream in("divk.in");
ofstream out("divk.out");
#define NMAX 500001
#define RMAX 100000
int n, k, a, b, r[NMAX], ap[RMAX];
long long solutions;
int main()
{
in >> n >> k >> a >> b;
for(int i=1;i<=n;i++)
{
in >> r[i];
r[i]=(r[i-1]+r[i])%k;
if(i>=a)
ap[r[i-a]]++;
if(i>b)
ap[r[i-b-1]]--;
solutions+=ap[r[i]];
}
out << solutions;
in.close();
out.close();
return 0;
}
