Pagini recente » Cod sursa (job #2361031) | Cod sursa (job #2238409) | Cod sursa (job #650971) | Cod sursa (job #826944) | Cod sursa (job #1534872)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
# define max 1000001
int v[801];
int CautareBinara(int i, int j, int s)
{
int mij = (i + j)/2;
if(i > j) return -1;
if(i == j && v[i] <= s) return mij;
if(s < v[mij])
return CautareBinara(i, mij - 1, s);
if(v[mij+1] <= s)
return CautareBinara(mij + 1, j, s);
return mij;
}
int main()
{
ifstream f("nrtri.in");
ofstream g("nrtri.out");
long long int n, i, j, x, nr = 0;
f>>n;
for(i = 1; i <= n; i++)
f >> v[i];
sort(v + 1, v + n + 1);
for(i = 1; i <= n - 2; i++)
for(j = i + 1; j <= n - 1; j++)
{
x = CautareBinara(j + 1, n, v[i] + v[j]);
if(x != -1)
nr += x - j;
}
g<<nr;
f.close();
g.close();
return 0;
}