Pagini recente » Cod sursa (job #655855) | Cod sursa (job #2794807) | Cod sursa (job #2492511) | Cod sursa (job #2241053) | Cod sursa (job #2950072)
#include <fstream>
#include <unordered_map>
#include <algorithm>
using namespace std;
ifstream in ("oite.in");
ofstream out ("oite.out");
#define int long long
const int max_size = 1025;
int a[max_size];
unordered_map <int, int> m;
signed main ()
{
int n, k, ans = 0;
in >> n >> k;
for (int i = 1; i <= n; i++)
{
in >> a[i];
}
sort(&a[1], &a[n + 1]);
for (int i = 1; i < n; i++)
{
for (int j = i + 1; j <= n; j++)
{
/// ma uit in spate ce perechi am
if (a[i] + a[j] > k)
{
break;
}
ans += m[k - a[i] - a[j]];
}
for (int j = 1; j < i; j++)
{ /// bag perechiile noi
m[a[i] + a[j]]++;
}
}
out << ans;
in.close();
out.close();
return 0;
}