Cod sursa(job #1456009)

Utilizator MaligMamaliga cu smantana Malig Data 29 iunie 2015 17:33:11
Problema Divk Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<iostream>
#include<fstream>
#include<cmath>
#include<algorithm>
#include<vector>
#include<bitset>
#include<cstring>
#include<queue>
#include<stdio.h>

#define ull unsigned long long
#define ll long long
#define FOR(a,b,c) for (int a=b;a<=c; ++a)
#define ROF(a,b,c) for (int a=b;a>=c; --a)
#define mod 100005

using namespace std;
ifstream f("divk.in");
ofstream g("divk.out");
ll N,K,A,B,rez;
ll v[500010];
ll sum[500010];

int main()
{
    f>>N>>K>>A>>B;
    FOR (i,1,N) {
        f>>v[i];
        sum[i]=v[i]+sum[i-1];
    }
    int da=N-A+1;
    FOR (i,1,da) {
        int st=i+A-1;
        int fn=min(i+B-1,N);
        FOR (j,st,fn) {
            //cout<<i<<' '<<j<<' '<<sum[j]-sum[i-1]<<'\n';
            if ( (sum[j]-sum[i-1])%K==0 )
                ++rez;
        }
    }
    g<<rez;
    f.close();g.close();
    return 0;
}