Pagini recente » Cod sursa (job #3337016) | Cod sursa (job #3348704) | Cod sursa (job #3344912) | Cod sursa (job #3345741) | Cod sursa (job #3330336)
#include <bits/stdc++.h>
/// Template Dutzu
#define fast ios_base::sync_with_stdio(false);cin.tie(0);
using namespace std;
ifstream fin("teste.in");
ofstream fout("teste.out");
int v[1030];
long long comb(int n, int k)
{
long long dem=1;
long long imp=1;
for (int i=2;i<=n;i++)
dem*=i;
for (int i=2;i<=k;i++)
imp*=i;
for (int i=2;i<=n-k;i++)
imp*=i;
return dem/imp;
}
int main()
{
fast
int n,l;
fin>>n>>l;
for (int i=1;i<=n;i++)
fin>>v[i];
sort(v+1,v+1+n);
long long rez=0;
for (int i=1;i<=n;i++)
for (int j=i+1;j<=n;j++)
{
int aux=l-v[i]-v[j];
int st=j+1,dr=n;
while (st<dr)
{
if (v[st]+v[dr]==aux)
{
int r=1,le=1;
if (v[st]==v[dr])
{
long long m=dr-st+1;
rez+=m*(m-1)/2;
break;
}
else{
while (st<dr and v[st]==v[st+1])
{
st++;
le++;
}
while (dr>st and v[dr]==v[dr-1])
{
dr--;
r++;
}
rez+=le*r;
st++;
dr--;
}
}
else
if (v[st]+v[dr]<aux)
st++;
else
dr--;
}
}
fout<<rez;
return 0;
}