Cod sursa(job #727685)
| Utilizator | Data | 28 martie 2012 10:44:59 | |
|---|---|---|---|
| Problema | Divk | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.45 kb |
#include <fstream>
using namespace std;
long r[500000],n,k,a,b,x,i,j,nr[500000];
long long sol,s;
int main()
{
fstream f("divk.in",ios::in);
fstream g("divk.out",ios::out);
f>>n>>k>>a>>b;
s=0;
for (i=1;i<=n;i++)
{
f>>x;
s=s+x;
r[i]=s%k;
}
r[0]=0;
sol=0;
for (i=a;i<=n;++i)
{
nr[r[i - a]]++;
if (i>b) nr[r[i - b - 1]]--;
sol=sol+ nr[r[i]];
}
g<<sol;
f.close();
g.close();
return 0;
}