Pagini recente » Cod sursa (job #1092468) | Cod sursa (job #2946466) | Cod sursa (job #2541929) | Cod sursa (job #414767) | Cod sursa (job #788613)
Cod sursa(job #788613)
#include <cstdio>
#include<algorithm>
using namespace std;
int a[805],c;
int cb(int max,int i,int j){
int mij,ma;
for(;i<=j;){
mij=(i+j)/2;
if(ma==mij)break;
if(a[mij]<max)i=mij+1;
else j=mij-1;
ma=mij;
}
if(a[i]>max)return i-1;
return i;
}
int main () {
int n,i,j,el;
freopen("ntri.in","r",stdin);
freopen("ntri.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;++i)scanf("%d",&a[i]);
sort(a+1,a+n+1);
for(i=1;i<n-1;++i){
for(j=i+1;j<n;++j){
el=cb(a[i]+a[j],j,n);
fprintf(stderr,"%d %d %d\n",i,j,el);
if(el>j)c+=(el-j);
}
}
printf("%d",c);
return 0;
}