Pagini recente » Cod sursa (job #1592347) | Cod sursa (job #740811) | Cod sursa (job #1437937) | Cod sursa (job #1579697) | Cod sursa (job #2326101)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ofstream fo("nrtri.out");
ifstream fi("nrtri.in");
int n,trig[900];
long long sol;
int cautbin(int cautat)
{
int poz=0;
for(int i=19;i>=0;i--)
{
if(poz+(1<<i)<=n && trig[poz+(1<<i)]<cautat)
{
poz+=(1<<i);
}
}
return poz;
}
int main()
{
fi>>n;
for(int i=1;i<=n;i++)
fi>>trig[i];
sort(trig+1,trig+n+1);
for(int i=1;i<n-1;i++)
for(int j=i+1;j<n;j++)
{
int suma=trig[i]+trig[j];
int pozitie=cautbin(suma);
sol+=(pozitie-j+1);
}
fo<<sol/2;
fo.close();
fi.close();
return 0;
}