Pagini recente » Cod sursa (job #2746027) | Cod sursa (job #2822596) | Cod sursa (job #1916921) | Cod sursa (job #667955) | Cod sursa (job #1107912)
#include<cstdio>
#include<algorithm>
#define maxn 805
using namespace std;
FILE *f=fopen("nrtri.in","r");
FILE *g=fopen("nrtri.out","w");
int v[805];
int bsearch(int x,int st,int dr){
int m=(st+dr)/2;
if (st<dr){
if (v[m]<=x) bsearch(x,m+1,dr);
else bsearch (x,st,m);
}
if (v[m]>x) m--;
return m;
}
int main(){
int n,k,x,s=0;
fscanf (f,"%d",&n);
for(int i=1;i<=n;++i) fscanf (f,"%d",&v[i]);
sort(v+1,v+n+1);
for(int i=1;i<=n-2;++i){
for(int j=i+1;j<=n-1;++j){
x=v[i]+v[j];
k=bsearch (x,j+1,n);
if(v[k]<=x) s+=(k-j);
}
}
fprintf (g,"%d",s);
return 0;
}