Pagini recente » Cod sursa (job #1500145) | Cod sursa (job #2588889) | Cod sursa (job #2523004) | Cod sursa (job #2402252) | Cod sursa (job #1770194)
#include<bits/stdc++.h>
#define Cheie 123457
#define maxC 1035
using namespace std;
int v[maxC],c,l,sum,val;
long long posibilitati;
vector<pair<int,int> > h[Cheie+5];
vector<pair<int,int> >::iterator it;
void add(int x)
{
int y=x%Cheie;
for(it=h[y].begin();it!=h[y].end();it++)
{
if((*it).first==x)
{
(*it).second++;
return;
}
}
h[y].push_back(make_pair(x,1));
}
int find(int x)
{
int y=x%Cheie;
for(it=h[y].begin();it!=h[y].end();it++)
{
if((*it).first==x)
{
return (*it).second;
}
}
return 0;
}
int main()
{
freopen("oite.in","r",stdin);
freopen("oite.out","w",stdout);
scanf("%d%d",&c,&l);
for(int i=1;i<=c;i++)
{
scanf("%d",&v[i]);
}
for(int i=1;i<=c;i++)
{
for(int j=(i+1);j<=c;j++)
{
add(v[i]+v[j]);
}
}
for(int i=1;i<=c;i++)
{
for(int j=(i+1);j<=c;j++)
{
sum=v[i]+v[j];
if(sum<=l)
{
val=l-sum;
posibilitati=posibilitati+1LL*find(val);
// add(sum);
}
}
}
printf("%lld\n",posibilitati);
return 0;
}