Cod sursa(job #1826323)

Utilizator Tiberiu02Tiberiu Musat Tiberiu02 Data 10 decembrie 2016 12:36:20
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
# include <algorithm>
# include <cstdio>

# define MAX_N 2000

int l[MAX_N];

int main() {
    FILE *fin = fopen( "nrtri.in", "r" ), *fout = fopen( "nrtri.out", "w" );

    int n, i, j, k, s;

    fscanf( fin, "%d", &n );

    for ( i = 0; i < n; i ++ )
        fscanf( fin, "%d", &l[i] );

    std::sort( l, l + n );

    s = 0;
    for ( i = 0; i < n; i ++ ) {
        k = i + 2;
        for ( j = i + 1; j < n; j ++ ) {
            while ( k < n && l[i] + l[j] >= l[k] )
                k ++;
            if ( k - j - 1 > 0 )
                s += k - j - 1;
        }
    }

    fprintf( fout, "%d", s );

    fclose( fin );
    fclose( fout );

    return 0;
}