Pagini recente » Cod sursa (job #1607399) | Cod sursa (job #2507548) | Cod sursa (job #2664282) | Cod sursa (job #195947) | Cod sursa (job #1575127)
#include <cstdio>
#include <algorithm>
#include <cstdio>
using namespace std;
int n,i,j,v[8005],p,nr;
int caut(int stg, int dr, int s)
{
int mijloc;
int primul;
primul=1;
int poz;
while(stg<=dr)
{
mijloc=(stg+dr)/2;
if((v[mijloc]<=s&&v[mijloc+1]>s)||(v[mijloc]<=s&&mijloc==n))
return 1;
else
if(v[mijloc]<=s&&v[mijloc+1]<=s)
stg=mijloc+1;
else
dr=mijloc-1;
}
mijloc=(stg+dr)/2;
if(v[mijloc]<s||v[mijloc]>s)
return 0;
return 1;
}
int main()
{
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
sort(v+1,v+n+1);
for (i=1; i<=n; i++)
for (j=i+1; j<=n; j++)
{
int s=v[i]+v[j];
nr+=caut(j+1,n,s);
}
printf("%d",nr);
return 0;
}