Pagini recente » Cod sursa (job #634168) | Cod sursa (job #228630) | Cod sursa (job #579545) | Cod sursa (job #1690095) | Cod sursa (job #494931)
Cod sursa(job #494931)
#include<fstream>
using namespace std;
const char iname[]="dreptunghiuri.in";
const char oname[]="dreptunghiuri.out";
const int maxn=405;
ifstream f(iname);
ofstream g(oname);
int p,i,j,n,m,x1,x2,delta,rad[maxn*maxn],k,a,b,c,A[maxn][maxn];
long long rez;
int main()
{
f>>n>>m;
//--n,--m;
if(n>m)
i=n,n=m,m=i;
for(i=1;i<m;++i)
rad[i*i]=i;
for(i=1;i<n;++i)
for(j=1;j<m;++j)
{
p=0;
if(j>=i)
for(k=0;k<i;++k)
{
//a=1,b=-j,c=k*(i-k);
delta=j*j-4*k*(i-k);
if(delta>=0&&rad[delta]>0)
delta=rad[delta];
x1=(j-delta)/2;
x2=(j+delta)/2;
if(x1>=0&&x1<j)
++p;
if(x2!=x1&&x2>=0&&x2<j)
++p;
}
else
p=A[j][i];
A[i][j]=p;
rez+=1LL*(n-i)*(m-j)*p;
}
g<<rez<<"\n";
}