Cod sursa(job #149082)

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

int nr,x,y,sol,n,k,a,b,i,j,s,v[500001],r[100001];


int main(){


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

for(i=1;i<=n;i++){
fscanf(f,"%d",&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,"%d",nr);
  fclose(g);

return 0;
}