Cod sursa(job #2462675)

Utilizator rares404AlShaytan - Balasescu Rares rares404 Data 27 septembrie 2019 18:47:44
Problema Divk Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>

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

int v[500005] ;
int sp[500005] ;
int f[100005] ;

int main() {
        int n, k, a, b, i ;
        in >> n >> k >> a >> b ;
        for (i = 1 ; i <= n ; ++ i) {
                in >> v[i] ;
                sp[i] = sp[i - 1] + v[i] ;
                sp[i] %= k ;
        }
        long long ans(0) ;
        for (i = a ; i <= b ; ++ i) {
                f[sp[i - a]] ++ ;
                ans += 1ll * (f[sp[i]]) ;
        }
        int lst = 1 ;
        for ( ; i <= n ; ++ i) {
                f[sp[i - a]] ++ ;
                f[sp[i - b - 1]] -- ;
                ans += 1ll * (f[sp[i]]) ;
        }
        out << ans ;
}