Cod sursa(job #583583)

Utilizator truenighttruenight truenight Data 21 aprilie 2011 01:35:20
Problema Numarare triunghiuri Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.77 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, a, b;
    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 = 2; i < n; ++i) {

        a = v[i - 1], b = v[i];

        for(j = i + 1; j <= n && a + b >= v[j]; ++j) ++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);
}