Pagini recente » Cod sursa (job #1779794) | Cod sursa (job #219594) | Cod sursa (job #2629474) | Cod sursa (job #817787) | Cod sursa (job #2846317)
#include <fstream>
#include <algorithm>
#include <unordered_map>
#include <vector>
using namespace std;
const int NMAX = 1024, BIG = 1048576;
int v[NMAX + 3];
unordered_map <int, vector <pair <int, int> > > m;
unordered_map <int, vector <pair <int, int> > > :: iterator it;
int main()
{
ifstream cin("oite.in");
ofstream cout("oite.out");
int n, s, i, j;
cin >> n >> s;
for (i = 1; i <= n; i++)
cin >> v[i];
int ans = 0;
for (i = 1; i + 1 <= n; i++)
for (j = i + 1; j <= n; j++)
{
m[v[i] + v[j]].push_back({i, j});
int need = s - v[i] - v[j];
it = m.find(need);
if (it == m.end())
continue;
for (int k = 0; k < it->second.size(); k++)
if (it->second[k].second < i)
ans++;
else break;
}
cout << ans;
}