Cod sursa(job #935682)
| Utilizator | Data | 4 aprilie 2013 13:41:00 | |
|---|---|---|---|
| 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");
int N,A,B,b,k,i,v[500100],d[500100],a[100100],f=1;
long long s;
int main()
{
in>>N>>k>>A>>B;
for(i=1;i<=N;i++)
{
in>>v[i];
v[i]=(v[i-1]+v[i]%k)%k;
}
for( i=0;i<=N-A;++i)
{
++b;
d[b]=i;
++a[v[d[b]]];
if(d[f]<i+A-B)
{
--a[v[d[f]]];
++f;
}
s=s+a[v[i+A]];
}
out<<s<<'\n';
return 0;
}
