Pagini recente » Cod sursa (job #1183294) | Cod sursa (job #2706899) | Cod sursa (job #1217792) | Cod sursa (job #81846) | Cod sursa (job #1797035)
#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;
}