Pagini recente » Cod sursa (job #30360) | Cod sursa (job #2457838) | Cod sursa (job #1168343) | Cod sursa (job #835157) | Cod sursa (job #122534)
Cod sursa(job #122534)
#include <stdio.h>
int main()
{
int i,j,p,q,r,nr,n,x;
int a[801];
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d",&n);
for (i=1; i<=n; i++)
scanf("%d",&a[i]);
for (i=1; i<=n-1; i++)
for (j=i+1; j<=n; j++)
if (a[i]>a[j])
{
x=a[i];
a[i]=a[j];
a[j]=x;
}
nr=0;
for (i=1; i<=n-2; i++)
for (j=i+1; j<=n-1; j++)
{
p=j+1;
q=n;
if (p==q && a[i]+a[j]>=a[n]) nr++;
int cont=0;
while (p<q)
{
r=(p+q)/2;
if (a[i]+a[j]<=a[r]) q=r;
else p=r;
if (p==r) cont++;
if (cont==2) break;
}
int p1=p;
cont=0;
p=j+1;
q=n;
while (p<q)
{
r=(p+q)/2;
if (a[i]+a[j]>=a[r]) p=r;
else q=r;
if (p==r) cont++;
if (cont==2) break;
}
int p2=q;
nr+=p2-p1;
}
printf("%d\n",nr);
return 0;
}