Cod sursa(job #1455569)

Utilizator radu_cebotariRadu Cebotari radu_cebotari Data 28 iunie 2015 14:55:00
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<fstream>
using namespace std;
ifstream in("divk.in");
ofstream out("divk.out");
const int NMAX = 500005;

int v[NMAX],dp[NMAX],N,K,A,B;

void read()
{

    in>>N>>K>>A>>B;
    for(int i = 1 ; i <= N ; ++i){

        in>>v[i];
        v[i] = (v[i] + v[i-1]) % K;
    }
    in.close();
}

void solve()
{

    long long rez = 0;
    for(int i = 1 ; i <= N ; ++i){
        if(i >= A)
            dp[ v[ i - A] ] ++;
        if( i > B)
            dp[ v [ i - B - 1] ] --;
        rez += dp[v[i]];
    }
    out<<rez;
}

int main()
{

    read();
    solve();
    return 0;
}