Cod sursa(job #583584)

Utilizator truenighttruenight truenight Data 21 aprilie 2011 01:37:42
Problema Numarare triunghiuri Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>

#define IN "nrtri.in"
#define OUT "nrtri.out"
#define N 801

static int v[N];

static void bubblesort(int);

int main(void) {

    int n, i, j, k;
    long nrtri = 0;

    (void) freopen(IN, "r", stdin);
    (void) freopen(OUT, "w", stdout);

    (void) scanf("%d", &n);

    for(i = 1; i <= n; ++i) scanf("%d", &v[i]);

    bubblesort(n);

    for(i = 1; i < n - 1; ++i) for(j = i + 1; j < n; ++j) 
        for(k = j + 1; k <= n && v[i] + v[j] >= v[k]; ++k) ++nrtri;

    printf("%ld\n", nrtri);

    return 0;
}

void bubblesort(int n) {

    int sortat, i, aux;

    do {

        sortat = 1;

        for(i = 1; i < n; ++i)
            if(v[i] > v[i + 1]) aux = v[i], v[i] = v[i + 1], v[i + 1] = aux,
                sortat = 0;
    } while(!sortat);
}