Pagini recente » Cod sursa (job #1330085) | Cod sursa (job #2136360) | Cod sursa (job #1382711) | Cod sursa (job #2772974) | Cod sursa (job #266026)
Cod sursa(job #266026)
#include <stdio.h>
#include <math.h>
int n,v[1000],i,j,x;
void qsort(long l, long r)
{
long i,j,x,y;
i=l;
j=r;
x=v[(l+r)>>1];
do
{
while ((v[i]<x)&&(i<n)) ++i;
while ((x<v[j])&&(j>1)) --j;
if (i<=j)
{
y=v[i];
v[i]=v[j];
v[j]=y;
++i;
--j;
}
}
while (i<=j);
if (l<j) qsort(l,j);
if (i<r) qsort(i,r);
}
int caut_bin(int p, int u)
{
int m;
m=(p+u)/2;
while (p<=u)
{
if ((v[m]<=v[i]+v[j] && v[m+1]>v[i]+v[j]) || (v[m]<=v[i]+v[j] && m==n))
return m;
else if (v[m]<=v[i]+v[j] && v[m+1]<=v[i]+v[j])
{
p=m+1;
m=(p+u)/2;
}
else
{
u=m-1;
m=(p+u)/2;
}
}
return 0;
}
int main()
{
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d", &n);
for (i=0;i<n;++i)
scanf("%d ", &v[i]);
qsort(1,n);
for (i=1;i<n-2;++i)
for (j=i+1;j<n-1;++j)
x=caut_bin(1,n);
printf("%d ",x);
return 0;
}