Cod sursa(job #2601011)

Utilizator victorzarzuZarzu Victor victorzarzu Data 13 aprilie 2020 16:09:53
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("divk.in");
ofstream g("divk.out");
long long n, a, b, k;
long long v[500005];
long long resturi[100005];

void Read()
{
  f>>n>>k>>a>>b;
  f>>v[1];
  v[1] %= k;
  for(int i = 2;i <= n;++i)
    f>>v[i], v[i] += v[i - 1], v[i] %= k;
}

void Solve()
{
  long long res = 0;
  for(int i = a;i <= n;++i)
    {
      resturi[v[i - a]]++;
      if(i > b)
        resturi[v[i - b - 1]]--;
      res += resturi[v[i]];
    }
  g<<res;
}

int main()
{
  Read();
  Solve();
  return 0;
}