Cod sursa(job #1515278)
| Utilizator | Data | 1 noiembrie 2015 13:20:44 | |
|---|---|---|---|
| Problema | Divk | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <iostream>
#include <fstream>
#define nmax 500005
using namespace std;
FILE* fin=fopen("divk.in","r");
ofstream fout("divk.out");
long r[nmax];
int main()
{long n,k,a,b,i,j,x,fina;
long long nr=0;
fscanf(fin,"%ld%ld%ld%ld",&n,&k,&a,&b);
r[0]=0;
for(i=1;i<=n;i++)
{
fscanf(fin,"%ld",&x);
r[i]=(x%k+ r[i-1])%k;
if(a<=1 && r[i]==0)nr++;
}
for(i=1;i<=n-a+1;i++)
{fina=min(i+b-1,n);
for(j=i+a;j<=fina;j++)
if(r[j]==r[i])++nr;
}
fout<<nr;
}
