Cod sursa(job #32213)

Utilizator astronomyAirinei Adrian astronomy Data 17 martie 2007 15:05:25
Problema Oite Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
#include <map>
using namespace std;

#define MAXN 1024

typedef long long llong;

int N, L, A[MAXN];
llong res;

map<int, int> Nr;

void solve(void)
{
    int i, j;

    for(i = N-1; i >= 0; i--)
    {
        for(j = i-1; j >= 0; j--)
            res += (llong)Nr[L-A[i]-A[j]];
        for(j = i+1; j < N; j++)
            Nr[A[i]+A[j]]++;
    }
}

void read_data(void)
{
    int i;

    scanf("%d %d\n", &N, &L);

    for(i = 0; i < N; i++)
        scanf("%d ", &A[i]);
}

void write_data(void)
{
    printf("%lld\n", res);
}

int main(void)
{
    freopen("oite.in", "rt", stdin);
    freopen("oite.out", "wt", stdout);

    read_data();
    solve();
    write_data();

    return 0;
}