Cod sursa(job #974052)

Utilizator superman_01Avramescu Cristian superman_01 Data 16 iulie 2013 13:08:53
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<fstream>
 
#define NMAX 500005
 
using namespace std;
 
ifstream f("divk.in");
ofstream g("divk.out");
 
int sum[NMAX];
int ap[NMAX];
int N,K,a,b;
unsigned long long Ans;
 
int main ( void )
{
    f>>N>>K>>a>>b;
    for( int i(1) ; i <= N ; ++i )
    {
        int x;
        f>>x;
        sum[i]=(sum[i-1]+x) % K;
    }
    for( int i(1) ; i <= N ; ++i )
    {
        if( i - a  >= 0)
            ++ap[sum[i-a]];
         
        if( i -b > 0 )
            --ap[sum[i-b-1]];
        Ans+=ap[sum[i]];
    }
    g<<Ans;
    f.close();
    g.close();
    return 0;
}