Cod sursa(job #26088)

Utilizator moga_florianFlorian MOGA moga_florian Data 5 martie 2007 10:16:21
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>

int sum[500005],u[100005];

int main()
{
FILE *fin=fopen("divk.in","r"),*fout=fopen("divk.out","w");
int n,k,a,b,i,s;    
long long sol=0;
fscanf(fin,"%d%d%d%d",&n,&k,&a,&b);
sum[0]=0;
for(i=1;i<=n;i++)
   {
   fscanf(fin,"%d",&sum[i]);
   sum[i]+=sum[i-1];
   sum[i]%=k;
   }
for(i=0;i<=k;i++) u[i]=0;
s=0;
for(i=1;i<=a-1;i++) s+=sum[i];
int li,lf,pi,pf;
for(li=1,lf=a,pi=lf-b,pf=li-1;lf<=n;li++,lf++,pi++,pf++)
   {
   if(pi-1>=0)
      u[sum[pi-1]]--;
   if(pf>=0)
      u[sum[pf]]++;
    
    sol+=u[sum[lf]];                                   
   }
fprintf(fout,"%lld\n",sol);
fclose(fin);
fclose(fout);   
}