Cod sursa(job #595770)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 13 iunie 2011 22:50:43
Problema Oite Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
#include <algorithm>
#include <ext/hash_map>

using namespace __gnu_cxx;
using namespace std;

hash_map <int,int> h;
int n,s,sol,v[1025];

int main ()
{
    int i,j;
    freopen("oite.in","r",stdin);
    freopen("oite.out","w",stdout);
    scanf ("%d %d",&n,&s);
    for (i=1;i<=n;++i)
        scanf("%d",&v[i]);
    sort(v+1,v+n+1);
    for (i=3;i<n;++i)
        for (j=i+1;j<=n;++j)
            ++h[v[i]+v[j]];
    for (i=2;i<=n-2;++i)
    {
        for (j=1;j<i;++j)
            sol+=h[s-v[i]-v[j]];
        for (j=i+2;j<=n;++j)
            --h[v[i+1]+v[j]];
    }
    printf ("%d\n",sol);
    return 0;
}