Cod sursa(job #3202775)

Utilizator ThomasPGeorg Popescu ThomasP Data 12 februarie 2024 11:30:46
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <bits/stdc++.h>
using namespace std;

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

int v[500001];
int f[10000001];

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