Pagini recente » Rating Maria Dinca (maria15) | Rating UVT - MILICA IONUT - BOGDAN ROBERT - ANDONIE ALEX (UVT_MILICA_BOGDAN_ANDONIE) | Monitorul de evaluare | Statistici Ariel Jackson (pestcontrol905) | Cod sursa (job #3299475)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
struct Dublet {
int i;
int j;
int val;
};
int CautareBinara(int val, int start);
const int DIM = 805;
int bete[DIM];
Dublet sume[DIM];
int n, m;
int main()
{
fin >> n;
for (int i = 1; i <= n; ++i)
fin >> bete[i];
sort(bete + 1, bete + n + 1);
for (int i = 1; i <= n; ++i)
for (int j = i + 1; j <= n; ++j)
{
sume[++m].i = i;
sume[m].j = j;
sume[m].val = bete[i] + bete[j];
}
int ans(0);
for (int i = 1; i <= m; ++i)
if (CautareBinara(sume[i].val, sume[i].j + 1) != -1)
ans++;
fout << ans;
return 0;
}
int CautareBinara(int val, int start)
{
int st(start), dr(n), mij, rez(-1);
while (st <= dr)
{
mij = (st + dr) / 2;
if (bete[mij] <= val)
{
rez = mij;
dr = mij - 1;
}
else
st = mij + 1;
}
return rez;
}