Pagini recente » Cod sursa (job #2592544) | Cod sursa (job #1750793) | Cod sursa (job #1933838) | Cod sursa (job #2854848) | Cod sursa (job #2068319)
#include <stdio.h>
#include <stdlib.h>
#define L 9
int v[800];
int n;
int caut(int x, int y){
int pas,r;
r=x+1;
pas=1<<L;
while(pas!=0){
if(pas+r<=n&&v[x]+v[y]>=v[pas+r]&&v[pas+r])
r+=pas;
pas=pas/2;
}
return r;
}
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;
}
}
j=1;
for(i=1;i<n;i++){
while(j<i){
tri = tri + caut(i,j)-i;
printf("%d %d %d\n",v[j],v[i],v[caut(i,j)]);
j++;
}
}
fprintf(f2,"%d",tri);
return 0;
}