Pagini recente » Cod sursa (job #266737) | Cod sursa (job #667721) | Cod sursa (job #1223495) | Cod sursa (job #1759210) | Cod sursa (job #2846375)
#include <fstream>
#include <algorithm>
#include <unordered_map>
#include <vector>
using namespace std;
const int NMAX = 1024, MOD = 1000039;
int v[NMAX + 1];
vector <pair <int, int> > r[MOD];
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++)
{
int sum = v[i] + v[j];
r[sum % MOD].push_back({v[i] + v[j], j});
int need = s - sum;
if (need < 0)
continue;
int val = need % MOD;
for (int k = 0; k < r[val].size(); k++)
if (r[val][k].first == need and r[val][k].second < i)
ans++;
}
cout << ans;
}