Pagini recente » Cod sursa (job #1354409) | Cod sursa (job #1067230) | Cod sursa (job #1320597) | Cod sursa (job #1277977) | Cod sursa (job #3217359)
#include <fstream>
using namespace std;
ifstream fin ("nrtri.in");
ofstream fout ("nrtri.out");
int bin(int v[], int val, int n)
{
int st = 1, dr = n, ans = -1;
while (st <= dr)
{
int med = (st + dr)/2;
if (v[med] >= val)
{
dr = med - 1;
ans = med;
}
else
st = med + 1;
}
return ans;
}
int a[805];
int main()
{
int n;
fin >> n;
for (int i = 1; i <= n; i++)
{
fin >> a[i];
}
bool sortat = false;
while (sortat == false)
{
sortat = true;
for (int i = 1; i < n; i++)
{
if (a[i] > a[i+1])
{
swap (a[i], a[i+1]);
sortat = false;
}
}
}
///sortarea e buna
int cate = 0;
for (int i = 1; i <= n; i++)
{
///vrem sa folosim a + b >= c pt un triunghi oarecare
for (int x = 2; x < n; x++)
{
int s = a[i] + a[x+1];
int poz = bin(a, s, n);
if (poz > 0)
cate = cate + (n - poz + 1);
//fout << a[i] << " " << a[i+1] << " " << poz << " " << cate << endl;
}
}
fout << cate;
return 0;
}