Pagini recente » Cod sursa (job #507411) | Cod sursa (job #2849980) | Cod sursa (job #1120895) | Cod sursa (job #1833421) | Cod sursa (job #234680)
Cod sursa(job #234680)
//http://infoarena.ro/problema/nrtri
#include <stdio.h>
int N, L[801];
int BS(int i, int j, int x)
{
int m,poz=0;
while (i<=j) {
m=i+(j-i)/2;
if (L[m]<=x) poz=m,i=m+1;
else j=m-1;
}
return poz;
}
int main()
{
int i,k,ok,a,j,c;
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d",&N);
for (i=1;i<=N;++i)
scanf("%d",&L[i]);
k=N;
do{
ok=1;
for (i=1;i<k;i++)
if (L[i]>L[i+1]) L[0]=L[i],L[i]=L[i+1], L[i+1]=L[0],ok=0;
k--;
}while (!ok);
k=0;
for (i=1;i<N-1;i++)
for (j=i+1;j<N;j++) {
c=L[i]+L[j];
a=BS(j+1,N,c);
if (a>j) k+=(a-j);
}
printf("%d",k);
return 0;
}