Cod sursa(job #1396160)

Utilizator mirupetPetcan Miruna mirupet Data 22 martie 2015 10:38:01
Problema Divk Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include<cstdio>
#include<vector>
using namespace std;
int n,k,A,B,i,j,l,nre,x,sum,nr;
vector<int>rest[100000];
int main()
    {
        freopen("divk.in","r",stdin);
        freopen("divk.out","w",stdout);
        scanf("%d%d%d%d",&n,&k,&A,&B);
        rest[0].push_back(0);
        for(i=1;i<=n;i++)
            {
                scanf("%d",&x);
                sum+=x;
                sum%=k;
                rest[sum].push_back(i);
            }
        /*for(i=0;i<k;i++)
        {
            for(j=0;j<rest[i].size();j++)
                printf("%d ",rest[i][j]);
            printf("\n");
        }
        printf("\n\n\n");*/


        //printf("%d %d\n",A,B);
        for(i=0;i<k;i++)
        {
            nr=rest[i].size();
            for(j=0;j<nr-1;j++)
                for(l=j+1;l<nr;l++)
                    if(rest[i][l]-rest[i][j]>=A)
                        if(rest[i][l]-rest[i][j]<=B)
                            nre++;
                        else
                            break;
        }

        printf("%d",nre);
    }