Pagini recente » Cod sursa (job #711364) | Monitorul de evaluare | Profil usureluflorian | Cod sursa (job #666064) | Cod sursa (job #1576540)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int v[801];
int c_bin(int first, int last, int s)
{
int mijloc,poz,prim=first;
mijloc=(first+last)/2;
while(first<=last)
{
if(v[mijloc]<=s)
{
first=mijloc+1;
poz=mijloc;
mijloc=(first+last)/2;
}
else
{
last=mijloc-1;
mijloc=(first+last)/2;
}
}
if(prim==first){return 0;}
return poz-prim+1;
}
int main()
{
int n,c=0,s;
fin>>n;
for(int i=1;i<=n;i++){
fin>>v[i];
}
sort(v+1,v+n+1);
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++)
{
s=v[i]+v[j];
c+=c_bin(j+1,n,s);
}
}
fout<<c;
return 0;
}