Cod sursa(job #413380)
| Utilizator | Data | 8 martie 2010 14:14:33 | |
|---|---|---|---|
| Problema | Numarare triunghiuri | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <cstdio>
#include <algorithm>
using namespace std;
int a[801];
int n;
int main ()
{
freopen ("nrtri.in", "r", stdin);
freopen ("nrtri.out", "w",stdout);
scanf ("%d ", &n);
int i, j,k;
for (i = 1; i <= n; ++i)
scanf ("%d ", &a[i]);
sort (a + 1, a + n + 1);
k = 0;
int rez = 0;
for (i = 1; i <= n; ++i)
for (j = i + 1; j <= n; ++j)
{
for (k = max (k, j + 1); k <= n && a[i] + a[j] >= a[k]; ++k);
--k;
rez += k - j;
}
printf ("%d\n", rez);
return 0;
}
