Pagini recente » Cod sursa (job #713721) | Cod sursa (job #373733) | Cod sursa (job #2975826) | Cod sursa (job #347983) | Cod sursa (job #34887)
Cod sursa(job #34887)
# include <stdio.h>
# define _fin "oite.in"
# define _fout "oite.out"
# define maxn 1325
# define maxl 1500002
# define myint long
myint f[maxl], e[maxl], a[maxn], n, l;
int main()
{
freopen(_fin, "r", stdin);
freopen(_fout,"w", stdout);
myint i, j, sol=0, s;
for (scanf("%ld%ld", &n, &l), i=1; i<=n; i++) scanf("%ld", a+i), ++e[a[i]];
for (i=1; i<n; i++) for (j=i+1; j<=n; j++)
if ( a[i]+a[j]<maxl ) ++f[a[i]+a[j]];
for (i=1; i<n; i++)
for (j=i+1; j<=n; j++)
{
s = l-a[i]-a[j];
if ( s <=0 ) continue;
sol += ( f[s] - (e[s-a[i]]-(s-a[i]==a[i]))*(s-a[i]>0)
- (e[s-a[j]]-(s-a[j]==a[j]))*(s-a[j]>0)
+ (a[i]+a[j]==s) );
}
printf("%ld\n", sol/(long long)6);
return 0;
}