Pagini recente » Cod sursa (job #823645) | Cod sursa (job #1575678) | Cod sursa (job #819635) | Cod sursa (job #1155614) | Cod sursa (job #1402023)
#include <fstream>
#include <algorithm>
const int NMAX = 850;
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int N,answer;
int v[NMAX];
int bs(int l, int r, int value)
{
int step,j;
for (step = 1; step <= N; step<<=1);
for (j = l-1; step; step>>=1)
{
if (j + step <= r && v[j+step] <= value)
j += step;
}
return j;
}
int main()
{
f >> N;
for (int i = 1; i <= N; ++i)
{
f >> v[i];
}
sort(v+1,v+N+1);
for (int i = 1; i <= N; ++i)
{
for (int j = i+1; j <= N; ++j)
{
answer += (bs(j+1,N,v[i]+v[j]) - j);
}
}
g << answer;
f.close();
g.close();
return 0;
}