Cod sursa(job #664644)

Utilizator alexpascadiAlexandru Pascadi alexpascadi Data 20 ianuarie 2012 15:58:00
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <fstream>

using namespace std;

long long sum[100001];
int fv[100001];

int main()
{
    ifstream f("divk.in");
    ofstream g("divk.out");
    int N,K,A,B,C,x,i,nrs=0;
    f>>N>>K>>A>>B;
    C=B-A+1;
    for(i=1;i<=N;i++)
    {
        f>>x;
        sum[i]=(sum[i-1]+x)%K;
    }

    for(i=1;i<=N;i++)
    {
        if(sum[i]>K)
        {
            fv[sum[i]]--;
            sum[i]-=K;
        }
        if(C+i<=N) sum[i+C]+=K;

        fv[sum[i]]++;

        nrs+=fv[sum[i]]-1;
        if(sum[i]==0) nrs++;
    }

    g<<nrs<<"\n";
}