Cod sursa(job #1704010)
Utilizator | Data | 17 mai 2016 21:44:14 | |
---|---|---|---|
Problema | Numarare triunghiuri | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.71 kb |
#include <fstream>
#include <algorithm>
using namespace std;
const int L = 9;
int main()
{
ifstream in("nrtri.in");
ofstream out("nrtri.out");
int v[1001], n, i, j, k, pas, rez = 0;
in >> n;
for(i=1; i<=n; i++) {
in >> v[i];
}
sort(v + 1, v + n + 1);
for (i = 1; i < n - 1; i++)
for (j = i + 1; j < n; j++)
{
k = 0;
pas = 1 << L;
while (pas != 0)
{
if (k + pas <= n && v[k + pas] <= v[i] + v[j])
k += pas;
pas /= 2;
}
if (k - j > 0)
rez += k - j;
}
out << rez;
return 0;
}