Cod sursa(job #739862)
| Utilizator | Data | 23 aprilie 2012 23:26:59 | |
|---|---|---|---|
| Problema | Divk | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.43 kb |
#include<fstream>
using namespace std;
int i,j,n,x,k,a1,b1;
unsigned long long uz[500002],s[500002],m;
int main()
{
FILE *f=fopen("divk.in","r");
FILE *g=fopen("divk.out","w");
fscanf(f,"%d%d%d%d",&n,&k,&a1,&b1);
for(i=1;i<=n;++i)
fscanf(f,"%d",&x),s[i]=(s[i-1]+x)%k;
for(i=1;i<=n;++i)
{
if(i-a1>=0)
++uz[s[i-a1]];
if(i-b1>0)
--uz[s[i-b1-1]];
m+=uz[s[i]];
}
fprintf(g,"%lld",m);
return 0;
}