Cod sursa(job #479247)

Utilizator mlazariLazari Mihai mlazari Data 23 august 2010 13:47:30
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.48 kb
#include<fstream>

using namespace std;

#define NMAX 500003
#define KMAX 100003

ifstream fi("divk.in");
ofstream fo("divk.out");

int n,k,a,b,i,x;
int s[NMAX],r[KMAX];
long long rez;

int main() {
  fi>>n>>k>>a>>b>>s[0];
  s[0]%=k;
  for(i=1;i<n;++i) {
    fi>>x;
    s[i]=(x+s[i-1])%k;
  }
  if(!s[a-1]) rez=1;
  r[0]=1;
  for(i=a;i<n;++i) {
    ++r[s[i-a]];
    if(i==b) --r[0];
    if(i>b) --r[s[i-b-1]];
    rez+=r[s[i]];
  }
  fo<<rez<<'\n';
  return 0;
}