Pagini recente » Cod sursa (job #2486590) | Cod sursa (job #213042) | Cod sursa (job #1466074) | Cod sursa (job #1173555) | Cod sursa (job #2068314)
#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])
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=0;i<n;i++)
fscanf(f1,"%d",&v[i]);
j=0;
int aux;
for(i=0;i<n;i++){
if(v[i]>v[i+1]){
aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
}
}
for(i=0;i<n;i++){
while(j<i){
j++;
tri = tri + caut(i,j)-i;
}
}
fprintf(f2,"%d",tri-1);
return 0;
}