Pagini recente » Cod sursa (job #583195) | Cod sursa (job #68382) | Cod sursa (job #1793522) | Cod sursa (job #2671536) | Cod sursa (job #675527)
Cod sursa(job #675527)
#include <stdio.h>
#include <stdlib.h>
#define TRIANGLE(a, b, c)\
(c) <= (a) + (b) ? 1 : 0
int cmp(const void *a,const void *b) {
return *(const int *)a - *(const int *)b;
}
int main() {
FILE *fin = fopen("nrtri.in", "r"), *fout = fopen("nrtri.out", "w");
short N, *l, i, j, k;
long No = 0;
fscanf(fin, "%hd", &N);
l = (short *) malloc(N * sizeof(short));
for (i = 0; i < N; i++) {
fscanf(fin, "%hd", &l[i]);
}
qsort(l, N, sizeof(short), cmp);
for (i = 0; i < N - 2; i++) {
for (j = i + 1; j < N - 1; j++) {
for (k = j + 1; k < N; k++) {
if (TRIANGLE(l[i], l[j], l[k])) {
No++;
} else {
break;
}
}
}
}
fprintf(fout, "%ld\n", No);
free(l);
fclose(fin);
fclose(fout);
return 0;
}