Pagini recente » Cod sursa (job #417543) | Cod sursa (job #1543176) | Cod sursa (job #1041452) | Cod sursa (job #2341440) | Cod sursa (job #938464)
Cod sursa(job #938464)
#include <fstream>
#include <algorithm>
using namespace std;
const char iname[] = "nrtri.in";
const char oname[] = "nrtri.out";
ifstream fin(iname);
ofstream fout(oname);
int N, i, j, ANS, x_need, cnt;
int v[804];
inline int binary_search (int x)
{
int st = j, dr = N, last_mid = 0;
while (st <= dr)
{
int mid = (st + dr) / 2;
if (v[mid] <= x)
last_mid = mid,
st = mid + 1;
else
dr = mid - 1;
}
if (last_mid) return last_mid;
else
return 0;
}
int main()
{
fin >> N;
for (i = 1; i <= N; ++i) fin >> v[i];
sort (v + 1, v + N + 1);
for (i = 1; i <= N; ++i)
{
for (j = i + 1; j <= N; ++j)
{
x_need = v[i] + v[j];
cnt = binary_search(x_need);
if (cnt)
ANS += (cnt - j);
}
}
fout << ANS << '\n';
return 0;
}