Pagini recente » Cod sursa (job #2575905) | Cod sursa (job #3235834) | Borderou de evaluare (job #2056520) | Cod sursa (job #401518) | Cod sursa (job #389275)
Cod sursa(job #389275)
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
#define file_in "oite.in"
#define file_out "oite.out"
#define mod 666013
#define Nmax (1<<10)+3
int v[Nmax],i,j,k,nr,s,n;
/*int cauta(int x)
{
int mij,ls,ld;
ls=k;
ld=n;
while(ls<=ld)
{
mij=(ls+ld)>>1;
if (mij==x)
return 1;
if (mij>x)
ls=mij+1;
else
ld=mij-1;
}
if (mij==x)
return 1;
return 0;
}*/
int main()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d", &n, &s);
for (i=1;i<=n;++i)
{
scanf("%d", &v[i]);
}
sort(v+1,v+n+1);
nr=0;
for (i=1;i<=n-3;++i)
for (j=i+1;j<=n-2;++j)
for (k=j+1;k<=n-1;++k)
/*if(cauta(s-v[i]-v[j]-v[k]))*/
if (binary_search(v+k+1,v+n+1,s-v[i]-v[j]-v[k]))
nr++;
printf("%d", nr);
fclose(stdin);
fclose(stdout);
return 0;
}