Pagini recente » Cod sursa (job #3237444) | Cod sursa (job #836217) | Cod sursa (job #1610418) | Cod sursa (job #1528456) | Cod sursa (job #1791317)
#include <cstdio>
#include <vector>
using namespace std;
vector <int> v[100017],v1[100017];
int i,j,k,z,x,x1,l,n,a[1028];
long long nr;
int main()
{
freopen ("oite.in","r",stdin);
freopen ("oite.out","w",stdout);
scanf ("%d %d", &n, &l);
a[0]=-1;
for (i=1;i<=n;i++)
scanf ("%d", &a[i]);
for (i=(n-2);i>=2;i--)
{
for (j=(i+2);j<=n;j++)
{
x=a[i+1]+a[j];
if (x<=l)
{
x1=x%100013;
z=v[x1].size();
for (k=0;k<z;k++)
{
if (v[x1][k]==x)
{
v1[x1][k]++;
break;
}
}
if (k==z)
{
v[x1].push_back(x1);
v1[x1].push_back(1);
}
}
}
for (j=1;j<i;j++)
{
x=l-a[i]-a[j];
if (x>=0)
{
x1=x%100013;
z=v[x1].size();
for (k=0;k<z;k++)
{
if (v[x1][k]==x)
{
nr=0LL+nr+v1[x1][k];
break;
}
}
}
}
}
printf ("%lld", nr);
return 0;
}