Cod sursa(job #49170)

Utilizator amadaeusLucian Boca amadaeus Data 5 aprilie 2007 15:07:21
Problema Oite Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <cstdio>
#include <map>
using namespace std;

#define NX 1042

map< int, int > M;
int v[ NX ];
int N, L, res;

void cit() {
	int i;
	
	scanf( "%d%d", &N, &L );
	for( i = 1; i <= N; i++ )
		scanf( "%d", v + i );
}

void rez() {
	int i, j;
	
	for( i = 2; i < N; i++ )
		for( j = i + 1; j <= N; j++ )
			M[ v[i] + v[j] ]++;
	for( i = 2; i < N - 1; i++ ) {
		for( j = i + 1; j <= N; j++ )
			M[ v[i] + v[j] ]--;
		for( j = 1; j < i; j++ )
			res += M[ L - v[i] - v[j] ];
	}
}

void scr() {
	printf( "%d\n", res );
}
		
int main() {
	freopen( "oite.in", "r", stdin );
	freopen( "oite.out", "w", stdout );

	cit();
	rez();
	scr();

	return 0;
}