Cod sursa(job #432298)

Utilizator pauldbPaul-Dan Baltescu pauldb Data 2 aprilie 2010 02:00:40
Problema Oite Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <fstream>
#include <tr1/unordered_map>

using namespace std;
using namespace tr1;

const int MAXN = 1030;

int N, S;
int A[MAXN];
long long Sol;
unordered_map <int, int> H;

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

	fin >> N >> S;

	for (int i = 0; i < N; ++i)
		fin >> A[i];

	for (int i = 0; i < N; ++i) {
		for (int j = i+1; j < N; ++j)
			if (H.find(S-(A[i]+A[j])) != H.end())
				Sol += H[S-(A[i]+A[j])];

		for (int j = 0; j < i; ++j) 
			++H[A[j]+A[i]];
	}

	fout << Sol << endl;

	return 0;
}