Cod sursa(job #1216082)

Utilizator ZenusTudor Costin Razvan Zenus Data 3 august 2014 11:38:52
Problema Dreptunghiuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <cstdio>
#include <algorithm>

using namespace std;

#define NMAX 405*405

long long N,M,ans,i,j,limita;
long long D[3][NMAX];

int main()
{
freopen("dreptunghiuri.in","r",stdin);
freopen("dreptunghiuri.out","w",stdout);

scanf("%lld%lld",&N,&M);

for (i=1;i<N;++i)
for (j=1;i+j+1<=N;++j)
{
    D[1][i*j]+=N-(i+j);
    limita=max(limita,i*j);
}

for (i=1;i<M;++i)
for (j=1;i+j+1<=M;++j)
{
    D[2][i*j]+=M-(i+j);
    limita=max(limita,i*j);
}

for (i=1,ans=N*M*(N-1)*(M-1)/4;i<=limita;++i)
ans+=(D[1][i]*D[2][i]);

printf("%lld\n",ans);

return 0;
}