Cod sursa(job #1141488)
| Utilizator | Data | 12 martie 2014 21:57:50 | |
|---|---|---|---|
| Problema | Divk | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <fstream>
using namespace std;
long long v[500005] , w[150000];
int main()
{
ifstream f("divk.in");
ofstream g("divk.out");
int n,k,a,b,x,nr=0,i;
unsigned long int c;
f>>n>>k>>a>>b;
for(i=1;i<=n;i++)
{
f>>x;
c=c+x%k;
if(c%k==0 && i<=a) nr++;
v[i]=(v[i-1]+x)%k;
}
for(i=1;i<=n;i++)
{
if(i>a) w[v[i-a]]=w[v[i-a]]+1;
if(i>b+1) w[v[i-b-1]]=w[v[i-b-1]]-1;
nr=nr+w[v[i]];
}
g<<nr;
}
