Pagini recente » Cod sursa (job #1420917) | Cod sursa (job #2528106) | Cod sursa (job #355668) | Cod sursa (job #974096) | Cod sursa (job #2074288)
#include <stdio.h>
#include <stdlib.h>
#define L 9
int v[801],n,f;
int bin(int x, int y){
int pas, z;
z=y+1;
pas = 1<<L;
while( pas != 0 ){
if(z+pas<=n)
if( v[x]+v[y] < v[z+pas] ){
z=z+pas;
}
pas=pas/2;
}
if(z-1!=y+1)
return z-1;
else
return n;
}
int main()
{
FILE *f1 = fopen ("nrtri.in","r"), *f2 = fopen ("nrtri.out","w");
int i,j,tri=0;
fscanf(f1,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f1,"%d",&v[i]);
int aux;
for(i=1;i<n;i++)
if(v[i]>v[i+1]){
aux = v[i];
v[i]= v[i+1];
v[i+1] = aux;
}
for(i=1;i<=n-2;i++)
for(j=i+1;j<=n-1;j++){
tri=tri+n-bin(i,j);
printf("%d %d %d\n",i,j,bin(i,j));
}
fprintf(f2,"%d",tri);
return 0;
}