Pagini recente » Cod sursa (job #2367197) | Cod sursa (job #696271) | Cod sursa (job #508462) | Cod sursa (job #872341) | Cod sursa (job #886484)
Cod sursa(job #886484)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("dreptunghiuri.in");
ofstream g("dreptunghiuri.out");
long long sol,i,j,n,m,a,a1,d,b,b1,c,c1;
int gcd(int a,int b)
{if(b==0)
return a;
return gcd(b,a%b);
}
int main()
{
f>>n>>m;
if(n==1||m==1)
{
g<<0<<'\n';
return 0;
}
if(n>m)
swap(n,m);
--m,--n;
sol=m*n*(m+1)*(n+1)/4;
for(i=1;i<n;++i)
for(j=1;j<m;++j)
{
d=gcd(i,j);
a=i/d;
b=j/d;
c=b+j;
a1=a;
b1=b;
c1=c;
while(i+a1<=n&&b1<=m&&c1<=m)
{
sol+=(n-a1-i+1)*(m-c1+1);
a1+=a;
b1+=b;
c1=j+b1;
}
}
g<<sol<<'\n';
}