Pagini recente » Cod sursa (job #2555527) | Cod sursa (job #2205298) | Cod sursa (job #359923) | Cod sursa (job #1151537) | Cod sursa (job #670311)
Cod sursa(job #670311)
#include <stdio.h>
#include <map>
using namespace std;
#define nmax 1030
long n, s, i, v[nmax], j, rez, poz, a, b;
map <int, int> ma1, ma2;
map <int, int> :: iterator it;
void citire()
{
scanf("%ld %ld",&n,&s);
for (i=1;i<=n;i++)
scanf("%ld",&v[i]);
}
void rezolvare()
{
for (i=2;i<=n;i++)
for (j=i+1;j<=n;j++)
ma2[v[i]+v[j]]++;
for (poz=2;poz<=n-2;poz++)
{
for (i=poz+1;i<=n;i++)
ma2[v[i]+v[poz]]--;
//for (i=1;i<=poz-2;i++)
//ma1.erase(v[i]+v[poz-1]);//ma1[v[i]+v[poz-1]]=0;//
for (i=1;i<=poz-1;i++)
rez+=ma2[s-v[i]-v[poz]];
/*for (it=ma1.begin();it!=ma1.end();it++)
{
a=(*it).first; b=s-a;
rez+=(*it).second * ma2[b];
}*/
}
printf("%ld",rez);
}
int main()
{
freopen("oite.in","r",stdin);
freopen("oite.out","w",stdout);
citire();
rezolvare();
return 0;
}