Cod sursa(job #1842731)
Utilizator | Data | 7 ianuarie 2017 15:10:25 | |
---|---|---|---|
Problema | Numarare triunghiuri | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.58 kb |
#include <cstdio>
#include <algorithm>
#define NMAX 800
using namespace std;
int v[NMAX + 1];
int main() {
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
int n,i,j,k,t = 0;
scanf("%d",&n);
for (i=1; i<=n; i++)
scanf("%d",&v[i]);
sort(v + 1, v + n + 1);
for (i=1; i<=n; i++) {
k = i + 2;
for (j=i+1; j<=n; j++) {
while (k <= n && v[i] + v[j] >= v[k])
k++;
if (k - j - 1 > 0)
t += k - j - 1;
}
}
printf("%d",t);
return 0;
}