Cod sursa(job #660966)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 13 ianuarie 2012 15:38:04
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#define l 100005
using namespace std;
ifstream f("divk.in");
ofstream g("divk.out");
int H[l][50];
long long S,k,n,A,lim,B,i,rez,x;
long long  bag(long long  val,long long  poz)
{
  long long  R=val%k;
  p++;
  H[R][p]=poz;
}
long long  sum(long long  val,long long  lo,long long  hi)
{
  long long  R=val%k,p=0,s=0;
  for(; H[R][p]&&H[R][p]<=hi; p++) if (H[R][p]>=lo&&H[R][p]<=hi) s++;
  return s;
}
int main()
{


  f>>n>>k>>A>>B;


  for(i=1; i<=n; i++)
    {
      f>>x;
      S+=x;
      if (S%k==0&&i>=A&&i<=B) rez++;
      rez+=sum(S,i-B,i-A);
      bag(S,i);
    }

  g<<rez;

  f.close();
  g.close();
  return 0;
}