Cod sursa(job #1881730)
Utilizator | Data | 16 februarie 2017 18:19:05 | |
---|---|---|---|
Problema | Numarare triunghiuri | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
int n, i, j, v[800], st, dr, nrt, mid;
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+2; j <= n; j++)
{
st = i; dr = j;
while (st <= dr-2)
{
mid = st + (dr-st)/2;
if (v[mid]+v[i]>=v[j] && v[i]+v[j]>=v[mid] && v[mid]+v[j]>=v[i]) nrt++;
st++;
}
}
fout << nrt << "\n";
}