Cod sursa(job #1178779)

Utilizator AndreiDumitrescuAndrei Dumitrescu AndreiDumitrescu Data 27 aprilie 2014 11:19:18
Problema Divk Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <stdio.h>

using namespace std;


int main()
{
    int s[500001];
    int N , A , B , K , i = 0 , contor = 0 , i1  , s1 , y;
    freopen("divk.in","r",stdin);
    freopen("divk.out","w",stdout);
    scanf("%d%d%d%d", &N , &K, &A, &B);
    s[0] = 0 ;
    for(i = 1 ; i <= N ; ++ i)
    {
        scanf("%d", &y);
        //4 9 2 11 5 1 3 k=5 a=2 b=4
        //0 4 13 15 26 31 32 35
        // 0 4 3 0 1 1 2 0
        s[i] = (s[i - 1] + y) % K;
    }
    i = 1 ; i1 = A + i - 1;
    while(i <= N-A+1)
    {
        if(i1 <= B + i - 1 && i1 <= N)
        {
            if(s[i1] == s[i - 1])
                contor++;
            i1++;
        }
        else
        {
            i++;
            i1 = A + i - 1 ;
        }
    }
     printf("%d", contor);

}