Cod sursa(job #1934685)
| Utilizator | Data | 21 martie 2017 18:46:48 | |
|---|---|---|---|
| Problema | Numarare triunghiuri | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <cstdio>
#include <algorithm>
using namespace std;
int main()
{
int n, rez, aux1, aux2, k;
freopen("nrtri.in", "r", stdin);
freopen("nrtri.out", "w", stdout);
scanf("%d", &n);
int nr[n];
for(int i = 0; i < n; ++i)
scanf("%d", &nr[i]);
sort(nr, nr + n);
rez = 0;
for(int i = 0; i < n-2; ++i)
{
aux1 = nr[i];
k = i+2;
for(int j = i+1; j < n; ++j)
{
aux2 = nr[j];
while(k < n && aux1 + aux2 > nr[k])
++k;
rez += k-j-1;
}
}
printf("%d", rez);
return 0;
}