Cod sursa(job #2924697)

Utilizator vladburacBurac Vlad vladburac Data 8 octombrie 2022 19:21:55
Problema Divk Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5e5;

ifstream fin( "divk.in" );
ofstream fout( "divk.out" );

map<int, int> rest;
int sp[MAXN+1];
int main() {
  int n, k, a, b, i, x;
  long long sum;
  fin >> n >> k >> a >> b;
  for( i = 1; i <= n; i++ ) {
    fin >> x;
    sp[i] = ( sp[i-1] + x ) % k;
  }
  sum = 0;
  for( i = a; i <= n; i++ ) {
    rest[sp[i-a]]++;
    if( i - b >= 1 )
      rest[sp[i-b]]--;
    if( i - b == 1 )
      rest[0]--;
    sum += rest[sp[i]];
  }
  fout << sum;
  return 0;
}