Pagini recente » Cod sursa (job #1724995) | Cod sursa (job #3244288) | Cod sursa (job #1006312) | Cod sursa (job #1304832) | Cod sursa (job #1489619)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int a[860], n, nr;
int main()
{
fin >> n;
for (int i=1;i<=n;i++)fin >> a[i];
sort (a + 1, a + n + 1);
int sm,st,dr,mij;
for (int i=1;i <= n - 2;i++)
{
for (int j = i + 1; j <= n-1;j++)
{
sm=a[i]+a[j];
st=max(i,j);
dr=n;
while (st < dr)
{
mij=(st+dr)/2;
if (a[mij] > sm) dr = mij - 1;
if (a[mij] <= sm) st = mij + 1;
}
mij =(st + dr)/2;
if (a[mij] > sm) mij--;
nr += mij - max(i, j);
}
}
fout << nr;
return 0;
}