Cod sursa(job #63753)

Utilizator cos_minBondane Cosmin cos_min Data 30 mai 2007 20:50:02
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <stdio.h>
using namespace std;

#define in "divk.in"
#define out "divk.out"
#define dim 500000

int S[dim+1], V[dim/5+1];
int A, B, K, N;

int main()
{
    freopen(in,"r",stdin);
    freopen(out,"w",stdout);
    
    int sum = 0;
    scanf("%d%d%d%d", &N, &K, &A, &B);
    
    for ( int i = 1; i <= N; i++ ) scanf("%d", &S[i]);
    
    for ( int i = 1; i <= B; i++ )
    {
        int t = S[i];
        while ( t >= K ) t -= K;
        V[t] += 1;
    }
    
    int t = S[1];
    while ( t >= K ) t -= K;
    sum += V[t];
    
    for ( int i = B+1; i <= N; i++ )
    {
        int t = S[i];
        while ( t >= K ) t -= K;
        V[t] += 1;
        
        int t2 = S[i-B];
        
        while ( t2 >= K ) t2 -= K;
        V[t2] -= 1;
        
        int t3 = S[i];
        while ( t3 >= K ) t3 -= K;
        
        sum += V[t3];
    }
    /*for ( int i = 1; i <= K; i++ )
        printf("%d ", V[i]); */ 
    
    printf("%d", sum);
}