Pagini recente » Cod sursa (job #2979869) | Cod sursa (job #741550) | Cod sursa (job #2593985) | Cod sursa (job #2593948) | Cod sursa (job #2600466)
#include <fstream>
#include <map>
using namespace std;
ifstream cin("oite.in");
ofstream cout("oite.out");
int v[1030];
map<int,long long> m;
int main()
{
int n,l,sum;
long long rasp=0;
cin>>n>>l;
for(int i=1;i<=n;++i)
cin>>v[i];
for(int i=1;i<=n-1;++i)
for(int j=i+1;j<=n;++j)
if(v[i]+v[j]<=l)
{
sum=v[i]+v[j];
if(m.find(l-sum)!=m.end())
rasp+=m[l-sum];
m[sum]++;
}
for(int i=1;i<=n;++i)
if(m.find(l-2*v[i])!=m.end())
rasp-=m[l-2*v[i]];
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
if(i!=j and 3*v[i]+v[j]==l)
rasp++;
cout<<rasp/3;
return 0;
}