Pagini recente » Cod sursa (job #2622181) | Cod sursa (job #2313932) | Cod sursa (job #1765169) | Cod sursa (job #2966150) | Cod sursa (job #3130900)
#include <bits/stdc++.h>
#define ll long long int
using namespace std;
int n, l;
int v[1050];
ifstream fin("oite.in");
ofstream fout("oite.out");
struct elem{
int sum,i,j;
};
struct hash_{
vector<elem>vec;
}h[945500];
const int mod = 945327;
int tot = 0;
void add(int val,int i,int j)
{
int x = val%mod;
elem aux ;
aux.sum = val;
aux.i = i;
aux.j = j;
h[x].vec.push_back(aux);
}
void srch(ll sum, ll i, ll j)
{
int x = sum%mod;
for(auto el: h[x].vec)
{
if(sum == el.sum && j<el.i&&i != el.i && j != el.j && j != el.i && i != el.j)
tot++;
}
}
int main()
{
fin >> n >> l;
for(int i =1 ;i<=n ; i++)
{
fin >> v[i];
}
for(int i = 1; i<=n-1; i++)
for(int j = i+1; j<= n ; j++)
{
add(v[i]+v[j],i,j);
}
for(int i = 1; i <= n-3 ;i++)
for(int j= i+1 ;j<= n-2; j++)
{
if(l-v[i]-v[j] >= 0)
srch(l-v[i]-v[j],i,j);
}
fout << tot ;
return 0;
}