Cod sursa(job #476111)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 9 august 2010 19:36:59
Problema Oite Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>

#include <algorithm>
#include <ext/hash_map>

using namespace __gnu_cxx;
using namespace std;

hash_map <int, int> f;

int n, s, sol, v[1030];

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