Cod sursa(job #1565892)

Utilizator tziplea_stefanTiplea Stefan tziplea_stefan Data 11 ianuarie 2016 16:59:58
Problema Divk Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>
#define ValN 500005

using namespace std;

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

int K, N, A, B;
int i, j, v[ValN];
long long x[ValN], nr;

int main()
{
    fin >> N >> K >> A >> B;
    for (i=1; i<=N; i++)
    {
        fin >> v[i];
        v[i]+=v[i-1];
        v[i]%=K;
        x[v[i]]++;
        if (v[i]==0 && A<=i && i<=B)
          nr++;
        if (i>B)
          x[v[i-B]]--;
       if (i>=A)
       {
           nr+=x[v[i]]-1;
           if (v[i]==v[i-1])
             nr--;
       }
    }
    fout << nr;
    fin.close();
    fout.close();
    return 0;
}