Pagini recente » Cod sursa (job #1724216) | Cod sursa (job #1988026) | Cod sursa (job #2038839) | Cod sursa (job #2079777) | Cod sursa (job #2074315)
#include <stdio.h>
#include <stdlib.h>
#define L 9
int v[801];
int main()
{
int n;
int i,j,k,pas;
int nrtri = 0;
FILE *f1 = fopen("nrtri.in","r"), *f2 = fopen("nrtri.out","w");
fscanf(f1,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f1,"%d",&v[i]);
nrtri=0;
int aux,f=0;
while(f==0){
f=1;
for(i=1;i<n;i++){
if(v[i]>v[i+1]){
aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
f=0;
}
}
}
for(i=1;i<=n-2;i++)
for(j=i+1;j<=n-1;j++){
k=1;
pas=1<<L;
while(pas!=0){
if(k+pas<=n && v[i]+v[j]>=v[k+pas])
k+=pas;
pas>>=1;
}
if(k > j && v[i]+v[j] >= v[k])
nrtri+=k-j;
}
fprintf(f2,"%d",nrtri);
return 0;
}