Cod sursa(job #1497750)

Utilizator MrTudorTudor Savulescu MrTudor Data 7 octombrie 2015 11:29:38
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#include <vector>
using namespace std;

int main(){
    ifstream f("divk.in");
    ofstream g("divk.out");
    int n, k, a, b;
    f >> n >> k >> a >> b;
    vector<int> s_part(n+1, 0);
    for(int i = 1; i <= n; ++i){
        f >> s_part[i];
        s_part[i] %= k;
        s_part[i] += s_part[i-1];
        s_part[i] %= k; }
    vector<int> nr_aparitii(k, 0);
    unsigned long long rez = 0;
    for(int i = 1; i <= n; ++i){
        if(i - a >= 0){
            ++nr_aparitii[s_part[i-a]]; }
        if(i - b - 1 >= 0){
            --nr_aparitii[s_part[i-b-1]]; }
        rez += nr_aparitii[s_part[i]]; }
    g << rez;
    return 0; }