Cod sursa(job #719767)

Utilizator DuxarFII-Stefan-Negrus Duxar Data 22 martie 2012 00:42:14
Problema Numarare triunghiuri Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<fstream>
#include<algorithm>

#define INfile "nrtri.in"
#define OUTfile "nrtri.out"

#define NMAX 801
#define VMAX 30009

using namespace std ;

ifstream F ( INfile ) ;
ofstream G ( OUTfile ) ;

int N , nrt ;
int nr [ VMAX ] , V [ NMAX ] ;

void read () ;
void solve () ;
void write () ;

int main ()
{
    read () ;

    solve () ;

    write () ;

    F.close () ;
    G.close () ;
    return 0 ;
}

void read ()
{
    int i ;

    F >> N ;

    for ( i = 1 ; i <= N ; ++ i )
    {
        F >> V [ i ] ;
        ++ nr [ V [  i ] ] ;
    }

    sort ( V + 1 , V + 1 + N ) ;
}

void solve ()
{
    int i , j , s ;

    for ( i = 1 ; i <= VMAX - 8 ; ++ i )
        nr [ i ] += nr [ i - 1 ] ;

    for ( i = 1 ; i < N - 1 ; ++ i )
        for ( j = i + 1 ; j < N ; ++ j )
        {
            s = V [ i ] + V [ j ] ;
            nrt += nr [ s ] - nr [ V [ j ] -1 ] - 1 ;
        }
}

void write ()
{
    G << nrt << '\n' ;
}