Pagini recente » Cod sursa (job #330284) | Cod sursa (job #1848903) | Cod sursa (job #2621454) | Cod sursa (job #2260511) | Cod sursa (job #614166)
Cod sursa(job #614166)
#include<stdio.h>
#include<stdlib.h>
FILE *f=fopen("nrtri.in","r"),*g=fopen("nrtri.out","w");
long int n,v[805];
void citire(){
long int i;
fscanf(f,"%ld\n",&n);
for(i=1; i<=n; i++){
fscanf(f,"%ld",&v[i]);
}
}
int cmp(const void *a,const void *b){
return *(int *)a - *(int *)b;
}
void rezolva(){
long int i,j,st,dr,nr,nr_sol=0,mij;
for(i=1; i<n; i++){
for(j=i+1; j<=n; j++){
st=j+1;dr=n;
while (st<=dr) {
mij=(st+dr)/2;
if (v[mij]<=v[i]+v[j]) {st=mij+1;}
else{dr=mij-1;}
}
if (v[mij]<=v[i]+v[j]){nr=mij;}
else{nr=mij-1;}
nr_sol=nr_sol+nr-j;
}
}
fprintf(g,"%ld",nr_sol);
}
int main(){
citire();
qsort(v+1,n,sizeof(int),cmp);
//for(long i=1; i<=n; i++){fprintf(g,"%ld\n",v[i]);}
rezolva();
return 0;
}