Cod sursa(job #149085)

Utilizator katakunaCazacu Alexandru katakuna Data 5 martie 2008 12:21:19
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<stdio.h>

long long nr,x,y,sol,n,k,a,b,i,j,s,v[500011],r[100011];


int main(){


FILE *f=fopen("divk.in","r");
fscanf(f,"%lld %lld %lld %lld",&n,&k,&a,&b);

for(i=1;i<=n;i++){
fscanf(f,"%lld",&j);
v[i]=(v[i-1]+j)%k;
}

fclose(f);


s=0;
y=0;
x=a-b;

  for(i=x;i<=y;i++){

    if(i>=0){
    r[v[i]]++;
    }

  }


  for(i=a;i<=n;i++){

  sol=v[i];

    nr+=(r[sol]);


  if(x>=0)  r [ v[x] ]--;
  x++;

  y++;

  r[ v[y] ]++;

  }


  FILE *g=fopen("divk.out","w");
  fprintf(g,"%lld",nr);
  fclose(g);

return 0;
}