Pagini recente » Cod sursa (job #3238811) | Cod sursa (job #2809881) | Cod sursa (job #2183702) | Cod sursa (job #1067378) | Cod sursa (job #3276478)
#pragma GCC optimize("Ofast")
#pragma GCC target("avx2")
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ifstream fin("oite.in");
ofstream fout("oite.out");
const int Nmax=1050;
int a[Nmax];
unordered_map<int,int> f;
unordered_map<int,int> tot;
signed main()
{
int n,L;
fin>>n>>L;
for(int i=1;i<=n;i++) fin>>a[i];
for(int i=1;i<=n;i++)
{
f[a[i]]++;
for(int j=1;j<i;j++)
{
tot[a[i]+a[j]]++;
}
}
ll ans=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<i;j++)
{
int sum=a[i]+a[j];
int need=L-sum;
int need2=need-a[i];
int need3=need-a[j];
ll cnt=tot[need]-f[need3]-f[need2];
///cout<<sum<<' '<<need<<' '<<cnt<<' '<<i<<' '<<j<<'\n';
if(a[i]+a[j]==need) cnt++;
if(need2==a[i]) cnt++;
if(need3==a[j]) cnt++;
ans+=1LL*cnt;
}
}
fout<<ans/6<<'\n';
return 0;
}