Cod sursa(job #877651)

Utilizator paul_gabryelPaul Buda paul_gabryel Data 13 februarie 2013 00:59:09
Problema Dreptunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb

#include <cstdio>
#include <cmath>
#include <fstream>

using namespace std;

int n,m,SOL;

void READ ()
{

    ifstream in ("dreptunghiuri.in");

    in>>n>>m;

}

void SOLVE ()
{

    int S,B,C,X1,X2,D;
    for( int i=1 ; i <= n ; ++i )
        for( int j=1 ; j <= m ; ++j )
        {
            S=0;
            for( int k=0 ; k < i ; ++k )
            {
                B=-j;
                C=k*(i-k);
                D=B*B-4*C;
                if( D < 0 || ( D && ((int)sqrt(D)) != sqrt(D)) )
                    continue;
                X1=(-B+D);
                X2=(-B-D);
                if( X1%2!=0 )
                    continue;
                X1>>=1;
                X2>>=1;
                if( 0 <= X1 && X1 < j )
                    ++S;
                if( 0 <= X2 && X2 < j )
                    ++S;
            }
            SOL+=(n-i)*(m-j)*S;
        }

}

void OUT ()
{

    //freopen ("dreptunghiuri.out","w",stdout);

    printf("%d\n",SOL);

}

int main ()
{

    READ ();
    SOLVE ();
    OUT ();

    return 0;

}