Cod sursa(job #1880760)
Utilizator | Data | 15 februarie 2017 21:44:50 | |
---|---|---|---|
Problema | Numarare triunghiuri | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
int n, i, j, v[151], st, dr, nrt, mid;
int main () {
ifstream fin("nrtrin.in");
ofstream fout("nrtrin.out");
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-1)
{
mid = st + (dr-st)/2;
if (v[mid]+v[st]>=v[dr] && v[mid]+v[dr]>=v[st] && v[st]+v[dr]>=v[mid]) nrt++;
st = mid+1;
}
}
fout << nrt << "\n";
}