Cod sursa(job #1528540)
| Utilizator | Data | 19 noiembrie 2015 20:16:44 | |
|---|---|---|---|
| Problema | Numarare triunghiuri | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.62 kb |
#include <bits/stdc++.h>
using namespace std;
int x[888];
int main() {
freopen("nrtri.in", "r", stdin);
freopen("nrtri.out", "w", stdout);
int n;
scanf("%d", &n);
for (int i = 1; i <= n; ++i)
scanf("%d", &x[i]);
sort(x + 1, x + n + 1);
int res = 0;
for (int i = 1; i <= n; ++i) {
int ptr = 0;
for (int j = i + 1; j <= n; ++j) {
if (ptr < j)
ptr = j;
while (ptr + 1 <= n && x[ptr + 1] <= x[i] + x[j])
++ptr;
res += ptr - j;
}
}
printf("%d", res);
return 0;
}
