Cod sursa(job #1043761)

Utilizator geniucosOncescu Costin geniucos Data 28 noiembrie 2013 22:11:59
Problema Dreptunghiuri Scor 100
Compilator cpp Status done
Runda Lista lui wefgef Marime 0.62 kb
#include<cstdio>
#include<cmath>
using namespace std;
int prod,maxprod,N,M,A,B,C,D,sum1[160009],sum2[160009];
long long ras;
int main()
{
freopen("dreptunghiuri.in","r",stdin);
freopen("dreptunghiuri.out","w",stdout);
scanf("%d%d",&N,&M);
ras=1LL*N*(N-1)/2*M*(M-1)/2;
for(A=1;A<N;A++)
    for(B=1;B+A+1<=N;B++)
    {
        sum1[A*B]+=N-A-B;
        if(A*B>maxprod) maxprod=A*B;
    }
for(C=1;C<M;C++)
    for(D=1;C+D+1<=M;D++)
    {
        sum2[C*D]+=M-C-D;
        if(C*D>maxprod) maxprod=C*D;
    }
for(prod=1;prod<=maxprod;prod++)
    ras+=1LL*sum1[prod]*sum2[prod];
printf("%lld\n",ras);
return 0;
}