Pagini recente » Cod sursa (job #3165958) | Cod sursa (job #1375403) | Cod sursa (job #516393) | Cod sursa (job #2940322) | Cod sursa (job #489357)
Cod sursa(job #489357)
#include <stdio.h>
struct list
{
int x,y,s;
list *link;
}*H[500002],*p;
int i,j,n,m,pow,nr,s,S,v[1027],x;
void addlink(int pos,int s,int x,int y)
{
list *p;
p=new list;
p->s=s;
p->x=x;
p->y=y;
p->link=H[pos];
H[pos]=p;
}
int main()
{
freopen("oite.in","r",stdin);
freopen("oite.out","w",stdout);
scanf("%d%d",&n,&S);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
double A=0.61;
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
{
s=v[i]+v[j];
x=s*A;
x=m*(s*A-x);
addlink(x,s,i,j);
}
nr=0;
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
{
s=v[i]+v[j];
if(s<=S)
{
x=(S-s)*A;
x=m*((S-s)*A-x);
p=H[x];
while(p!=NULL)
{
if(p->s==S-s)
if(p->x>i&&p->x>j&&p->y>i&&p->y>j) nr++;
p=p->link;
}
}
}
printf("%d\n",nr);
return 0;
}