Cod sursa(job #1493788)

Utilizator czlateaZlatea Cezar czlatea Data 29 septembrie 2015 21:35:39
Problema Numarare triunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <cstdio>
#include <algorithm>
using namespace std ;
int v[820];
int main()
{
    freopen ( "nrtri.in" , "r" , stdin ) ;
    freopen ( "nrtri.out" , "w" , stdout ) ;
    int n, sol = 0 , i , j , last ;
    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 ++ )
    {
        last = i + 1 ;
        for ( j = i + 1 ; j <= n ; j ++ )
        {
            while ( last < j )
                last ++ ;
            while ( last < n && v[i] + v[j] >= v[last + 1] )
                last ++ ;
            sol += last - j;
        }
    }

    printf ( "%d\n" , sol ) ;
    return 0;
}