Cod sursa(job #2015613)

Utilizator AlexandruLuchianov1Alex Luchianov AlexandruLuchianov1 Data 26 august 2017 18:44:53
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream in ("divk.in");
ofstream out ("divk.out");
int const nmax = 500000;
int sum[1 + nmax];
int s[1 + nmax];///s[i] how many sum[j] == i are in range

int main()
{
  int n , a , b ,k;
  in>>n>>k>>a>>b;
  long long stotal = 0;
  for(int i = 1 ; i <= n ;i++){
    in>>sum[i];
    sum[i] = (sum[i - 1] + sum[i] ) % k;
    if(a <= i){
      s[sum[i - a]]++;
    }
    if(b < i){
      s[sum[i - b - 1]]--;
    }
    stotal += s[sum[i]];
  }
  out<<stotal;
  return 0;
}