Cod sursa(job #1312019)

Utilizator ArchazeyBaltatu Andrei-Mircea Archazey Data 8 ianuarie 2015 20:14:55
Problema Oite Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<bits/stdc++.h>
using namespace std;

ifstream fin("oite.in");
ofstream fout("oite.out");

const int NMAX=1025;

int n,L,a[NMAX];
map<int,int>M;
long long sol;

int main()
{
    int i,j;
    fin>>n>>L;
    for (i=1;i<=n;i++) fin>>a[i];
    for (i=2;i<n;i++)
        for (j=i+1;j<=n;j++)
            {
                if (M.find(a[i]+a[j])==M.end()) M[a[i]+a[j]]=0;
                M[a[i]+a[j]]++;
            }
    for (i=2;i<(n-1);i++)
        {
            for (j=i+1;j<=n;j++) M[a[j]+a[i]]--;
            for (j=1;j<i;j++)
                if ((a[i]+a[j])<=L && M.find(L-a[i]-a[j])!=M.end())
                    sol+=M[L-a[i]-a[j]];
        }
    fout<<sol<<"\n";
    return 0;
}