Cod sursa(job #2523419)

Utilizator memecoinMeme Coin memecoin Data 14 ianuarie 2020 06:20:20
Problema Divk Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <string>
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <math.h>
#include <set>
#include <map>
#include <string.h>
#include <queue>

using namespace std;

#ifdef DEBUG
string name = "data";
#else
string name = "divk";
#endif

ifstream fin(name + ".in");
ofstream fout(name + ".out");

int n,k,a,b, x;

int f[100005];
int s[100005];

int main() {
    
    fin >> n >> k >> a >> b;
    
    int64_t result = 0;
    
    for (int i = 1; i <= n; ++i) {
        fin >> x;
        
        s[i] = (s[i - 1] + x) % k;
        
        if (i > b) {
            f[s[i - b]]--;
        }
        
        if (i >= a) {
            f[s[i]]++;
            result += f[s[i]] - 1;
        }
    }
    
    fout << result;
    
    return 0;
}