Pagini recente » Cod sursa (job #2095189) | Cod sursa (job #2071796) | Istoria paginii utilizator/gudeialina | Cod sursa (job #2093940) | Cod sursa (job #1837503)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream in("oite.in");
ofstream out("oite.out");
const int cMax = 1030;
int c, s;
int a[cMax];
int rasp;
unordered_map<int, int> exista;
void citire()
{
in >> c >> s;
for(int i = 1; i <= c; ++i)
in >> a[i];
}
void rezolvare()
{
int x;
for(int i = 1; i <= c; ++i)
{
for(int j = i + 1; j <= c; ++j)
{
x = s - a[i] - a[j];
if(exista.find(x) != exista.end())
rasp += exista[x];
}
for(int j = 1; j < i; ++j)
{
x = a[i] + a[j];
if(exista.find(x) == exista.end())
exista[x] = 1;
else
exista[x]++;
}
}
out << rasp;
}
int main()
{
citire();
rezolvare();
return 0;
}