Pagini recente » Cod sursa (job #2980348) | Cod sursa (job #1487993) | Cod sursa (job #1166759) | Cod sursa (job #1784535) | Cod sursa (job #1173926)
#include<fstream>
#include<cmath>
using namespace std;
ifstream f("dreptunghiuri.in"); ofstream g("dreptunghiuri.out");
int m,n,w,h,a,b,r,x,y,p,i,rad[160001];
long long nr;
int main()
{ f>>m>>n;
if(m>n) m^=n^=m^=n;
for(i=1;i<=160000;i++) rad[i]=(int)sqrt((double)i);
for(h=1;h<m;h++)
for(w=1;w<n;w++)
{ p=(m-h)*(n-w);
nr+=p;
for(a=1;a<=h;a++)
{ b=h-a;
r=w*w-4*a*b;
if(r>0)
{ y=rad[r];
if(y*y==r)
{ x=w-y;
if(!(x&1) && x>0) nr+=p;
x=w+y;
if(!(x&1) && x/2<w) nr+=p;
}
}
if(!r && !(w&1)) nr+=p;
}
}
g<<nr<<'\n'; g.close(); return 0;
}