Pagini recente » Statistici Andrei Tirpescu (Andrei_Tirpescu) | Istoria paginii runda/ml1 | Cod sursa (job #1597579) | Istoria paginii utilizator/bosshai | Cod sursa (job #1574808)
#include <iostream>
#include <algorithm>
#include<fstream>
using namespace std;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int a[810];
int c_bin(int first, int last, int s)
{
int mijloc,poz;
int prim=first;
mijloc=(first+last)/2;
while(first<=last)
{
if(a[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,cnt=0;
fin>>n;
for(int i=1; i<=n; i++)
fin>>a[i];
sort(a+1, a+n+1);
for(int i=1; i<=n; i++)
for(int j=i+1; j<=n; j++)
{
int s=a[i]+a[j];
cnt+=c_bin(j+1,n,s);
}
fout<<cnt;
return 0;
}