Cod sursa(job #474863)

Utilizator Mishu91Andrei Misarca Mishu91 Data 5 august 2010 13:16:24
Problema Oite Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <algorithm>
#include <ext/hash_map>

using namespace std;
using namespace __gnu_cxx;

const int MAX_N = 1025;

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

hash_map <int, short> H;
int Sol, N, L, V[MAX_N];

void citire() {
	fin >> N >> L;

	for(int i = 1; i <= N; ++i) {
		fin >> V[i];
	}

	sort(V+1, V+N+1);
}

int main() {
	citire();

	for(int i = 2; i <= N; ++i) {
		for(int j = i+1; j <= N; ++j) {
			if(V[i] + V[j] > L) continue;

			++H[V[i] + V[j]];
		}
	}

	for(int i = 2; i <= N; ++i) {
		for(int j = i+1; j <= N; ++j) {
			if(V[i] + V[j] > L) continue;

			--H[V[i] + V[j]];
		}

		for(int j = 1; j < i; ++j) {
			if(V[i] + V[j] > L) continue;

			Sol += H[L - V[i] - V[j]];
		}
	}

	fout << Sol;
}