Cod sursa(job #1043756)

Utilizator geniucosOncescu Costin geniucos Data 28 noiembrie 2013 22:10:06
Problema Dreptunghiuri Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<cstdio>
#include<cmath>
using namespace std;
int prod,maxprod,N,M,A,B,C,D,sum[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++)
    {
        sum[A*B]+=N-A-B;
        if(A*B>maxprod) maxprod=A*B;
    }
for(prod=1;prod<=maxprod;prod++)
    for(C=1;C<M;C++)
        if(prod%C==0)
        {
            D=prod/C;
            if(C+D<M) ras+=1LL*sum[prod]*(M-C-D);
        }
printf("%lld\n",ras);
return 0;
}