Pagini recente » Cod sursa (job #822621) | Cod sursa (job #322492) | Cod sursa (job #2257223) | Istoria paginii utilizator/ilinca_luisa | Cod sursa (job #1209953)
#include<fstream>
#include<algorithm>
#define MOD 666013
using namespace std;
typedef struct lnod {
int info,nr;
lnod *next;
}*nod;
int i,j,n,s,a[1050],rs=0;
nod h[666015];
void add(int x,nod &y) {
nod p=new lnod;
p->info=x;
p->nr=1;
p->next=y;
y=p;
}
void adaug(int x) {
for(nod p=h[x%MOD];p;p=p->next)
if(p->info==x) { ++p->nr; return; }
add(x,h[x%MOD]);
}
int search(int x) {
for(nod p=h[x%MOD];p;p=p->next)
if(p->info==x) return p->nr;
return 0;
}
int main()
{
ifstream cin("oite.in");
ofstream cout("oite.out");
cin>>n>>s;
for(i=1;i<=n;++i) cin>>a[i];
for(i=1;i<n;++i)
{
for(j=i+1;j<=n;++j)
if(s-a[i]-a[j]>=0) rs+=search(s-a[i]-a[j]);
for(j=1;j<i;++j) adaug(a[i]+a[j]);
}
cout<<rs<<'\n';
return 0;
}