Pagini recente » Cod sursa (job #2309003) | Cod sursa (job #1557957) | Cod sursa (job #2821300) | Cod sursa (job #1621468) | Cod sursa (job #1494969)
#include <stdio.h>
#include <algorithm>
using namespace std;
int v[2001];
int verif( int a,int b,int c){
if(a<b+c&&b<a+c&&c<a+b)
return 0;
else
return 1;
}
int cautbin(int l1,int val,int l2){
int mij;
while(l1<=l2){
mij=(l1+l2)/2;
if(v[mij]<=val)
l1=mij+1;
else
l2=mij-1;
}
return mij;
}
int main(){
FILE *fin,*fout;
fin=fopen("nrtri.in","r");
fout=fopen("nrtri.out","w");
int i,j,k,n,cate=0;
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++)
fscanf(fin,"%d",&v[i]);
sort(v+1,v+n+1);
for(i=1;i<=n-2;i++)
for(j=i+1;j<=n-1;j++){
k=cautbin(j,v[i]+v[j],n);
if(v[k]>v[i]+v[j])
k--;
cate+=k-j;
}
fprintf(fout,"%d",cate);
fclose(fin);
fclose(fout);
return 0;
}