Cod sursa(job #44695)

Utilizator victorsbVictor Rusu victorsb Data 31 martie 2007 17:13:39
Problema Oite Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <cstdio>

#define Nmax 1024
#define Lmax 1000005

int n, l;
int sir[Nmax], sum[Lmax];

void citire()
{
    int i;
    
    scanf("%d %d", &n, &l);
    for (i = 1; i <= n; ++i)
        scanf("%d", &sir[i]);
}

void solve()
{
    int i, j, sol = 0;
    
    for (i = 1; i <= n; ++i)
    {
        for (j = i + 1; j <= n; ++j)
            if (l - sir[i] - sir[j] > 0)
                sol += sum[l - sir[i] - sir[j]];
        
        for (j = 1; j < i; ++j)
            if (sir[i] + sir[j] < Lmax)
                ++sum[sir[i] + sir[j]];
    }
    
    printf("%d\n", sol);
}

int main()
{
    freopen("oite.in", "r", stdin);
    freopen("oite.out", "w", stdout);
    citire();
    solve();
    return 0;
}