Pagini recente » Cod sursa (job #1200165) | Cod sursa (job #2342750) | Cod sursa (job #2203778) | Cod sursa (job #3038332) | Cod sursa (job #1615773)
#include <cstdio>
#include <algorithm>
using namespace std;
int sol,n,i,v[11],poz[11],a[1001];
int cbin(int p,int u,int nr)
{
int m=(p+u)/2;
if(a[m]>nr) return cbin(p,m-1,nr);
else return m;
}
void back(int k,int j)
{
if(k<=2){
for(int i=j+1;i<=n-1;++i){
poz[k]=i;
v[k]=a[i],back(k+1,i);
}
}
else{
int nr=v[1]+v[2];
if(poz[2]==n-1){
if(a[n]<=nr)
++sol;
}
else {
int p=cbin(poz[2],n,nr);
sol=sol+(p-poz[2]);
}
}
}
int main()
{
freopen("nrtri.in", "r", stdin);
freopen("nrtri.out", "w", stdout);
scanf("%d", &n);
for(i=1;i<=n;++i)
scanf("%d", &a[i]);
sort(a+1,a+1+n);
back(1,0);
printf("%d", sol);
return 0;
}