Cod sursa(job #1214829)

Utilizator OnimushaLordTiberiu Copaciu OnimushaLord Data 31 iulie 2014 15:46:23
Problema Oite Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
# include <cstdio>
# include <vector>
# define sz size()
# define bg begin()
# define ed end()
# define pb push_back
# define MOD 10009
# define N 1030

using namespace std;

vector <int> :: iterator it;
vector <int> h[MOD];

int a[N],i,j,n,l,sum,ind,sol;

int main()
{
    freopen("oite.in", "r", stdin);
    freopen("oite.out", "w", stdout);

    scanf("%d %d\n", &n, &l);
    for(i=1; i<=n; ++i) scanf("%d ", &a[i]);

    for(i=1; i<=n; ++i)
    {
        for(j=i+1; j<=n; ++j)
        {
            sum=a[i]+a[j];
            if(sum>=l) continue;
            ind=(l-sum)%MOD;
            for(it=h[ind].bg; it!=h[ind].ed; it++)
                if(*it==l-sum) sol++;
        }
        for(j=1; j<i; ++j)
        {
            sum=a[i]+a[j];
            ind=sum%MOD;
            h[ind].pb(sum);
        }
    }

    printf("%d\n", sol);

    fclose(stdin);
    fclose(stdout);
    return 0;
}