Cod sursa(job #474864)

Utilizator Mishu91Andrei Misarca Mishu91 Data 5 august 2010 13:17:51
Problema Oite Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <algorithm>
#include <tr1/unordered_map>

using namespace std;
using namespace tr1;

const int MAX_N = 1025;

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

unordered_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) break;

			++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) break;

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

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

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

	fout << Sol;
}