Cod sursa(job #1797035)

Utilizator ArkinyStoica Alex Arkiny Data 3 noiembrie 2016 22:47:04
Problema Oite Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<fstream>
#include<map>
using namespace std;

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

map<long long, long long> mp;

map<long long, long long> D[1025];

int v[1025];

int main()
{
	int N, S;

	in >> N >> S;

	for (int i = 1;i <= N;++i)
		in >> v[i];

	for (int i = 1;i <= N;++i)
		for (int j = i + 1;j <= N;++j)
			D[i][v[i] + v[j]]++, D[j][v[i] + v[j]]++, mp[v[i] + v[j]]++;
	int rez = 0;
	for (int i = 1;i <= N;++i)
		for (int j = i + 1;j <= N;++j)
		{
			if (S - v[i] - v[j] >= 0)
			{
				rez += mp[S - v[i] - v[j]] - D[i][S - v[i] - v[j]] - D[j][S - v[i] - v[j]];

				
			}
		}

	out << rez;

	return 0;
}