Cod sursa(job #995845)
| Utilizator | Data | 10 septembrie 2013 12:55:07 | |
|---|---|---|---|
| Problema | Divk | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include<iostream>
using namespace std;
#include<stdio.h>
long long a,b,n,k,i,j,nr,nrfinal,z[500005],s[500005],m[500005],suma;
FILE *f,*g;
int main()
{
f=fopen("divk.in","r");
g=fopen("divk.out","w");
fscanf(f,"%lld%lld%lld%lld\n",&n,&k,&a,&b);
for(i=1;i<=n;i++)
fscanf(f,"%lld",&z[i]);
for(i=1;i<=n;i++)
{s[i]=s[i-1]+z[i];
s[i]=s[i]%k;
}
for(i=1;i<=n;i++)
{
if(i-a>=0)
m[s[i-a+2]]++;
if(i-b>0)
m[s[i-b+1]]--;
suma=suma+m[s[i]];
}
fprintf(g,"%lld",suma);
}
