Pagini recente » Cod sursa (job #177571) | Cod sursa (job #2858818) | Cod sursa (job #1893792) | Cod sursa (job #1231472) | Cod sursa (job #1881883)
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
int n, i, j, v[800], st, dr, mid, poz;
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;
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;
}