Pagini recente » Cod sursa (job #1594765) | Cod sursa (job #1707355) | Cod sursa (job #2633607) | Cod sursa (job #10906) | Cod sursa (job #1881897)
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
int n, i, j, v[800], st, dr, mid, poz, k;
long nrt;
int main () {
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
fin >> n;
for (i = 1; i <= n; i++) fin >> v[i];
sort (v+1 , v+n+1);
for (i = 1; i <= n-2; i++)
for (j = i+1; j <= n-1; j++)
{
st = j+1; dr = n; poz = st + (dr-st)/2;
while (st <= dr)
{
mid = st + (dr-st)/2;
if (v[mid] <= v[i]+v[j]) { st = mid+1; poz = mid; }
if (v[mid] > v[i]+v[j]) { dr = mid-1; }
}
if (st > dr) nrt += poz-j;
}
// 2 3 4 7
fout << nrt << "\n";
}