Pagini recente » Cod sursa (job #2628192) | Cod sursa (job #1168526) | Cod sursa (job #2274684) | Cod sursa (job #770314) | Cod sursa (job #96420)
Cod sursa(job #96420)
#include<stdio.h>
#include<stdlib.h>
int comp(const void *a, const void *b){
int *aa=(int *)a, *bb=(int *)b;
int x=*aa, y=*bb;
return x-y;
}
int main () {
int n,v[800],i,nr=0,j,m,p,u,ok=0;
FILE *in=fopen("nrtri.in","r"), *out=fopen("nrtri.out","w");
fscanf(in,"%d",&n);
for(i=0;i<n;i++)
fscanf(in,"%d",&v[i]);
qsort(v,n,sizeof(v[0]),comp);
for(i=0;i<n-2;i++)
for(j=i+1;j<n-1;j++){
ok=0;
p=j+1;
u=n-1;
while(p!=u){
m=(p+u)/2;
if(v[i]+v[j]>v[m])
p=m+1;
else
u=m;
ok=1;
}
if(ok)
nr+=p-j;
}
fprintf(out,"%d\n",nr);
fclose(in);
fclose(out);
return 0;
}