Pagini recente » Cod sursa (job #1813129) | Cod sursa (job #159977) | Cod sursa (job #1011235) | Cod sursa (job #1089139) | Cod sursa (job #70636)
Cod sursa(job #70636)
#include<stdio.h>
#define Nmax 404
char solved[Nmax][Nmax];
int rad[170000];
int main()
{
FILE *fin=fopen("dreptunghiuri.in","r"),
*fout=fopen("dreptunghiuri.out","w");
int M,N,W,H,A,i,delta,C,crt;
fscanf(fin,"%d%d",&M,&N);
for(i=1; i*i<=160000; i++)
rad[i*i]=i;
long long sol=0;
for(H=1;H<M;H++)
for(W=1;W<N;W++)
// if(solved[H][W] == 0)
{
crt=0;
for(A=1;A<H;A++)
{
delta= W*W - 4*A*(H-A);
if(rad[delta] || delta==0)
{
//sol1
C=W-rad[delta];
if(C % 2 ==0 && C/2 > 0 && C/2 <= W )
crt++;
//sol2
C=W+rad[delta];
if(C%2==0 && C/2>0 && C/2<=W)
crt++;
if(2*A == H && W%2==0)
crt--;
}
}
crt++;
crt*= (M-H) * (N-W);
/* solved[H][W]=1;
if(W<=M && H<=N && H!=W)
{
crt*=2;
solved[W][H]=1;
}
*/
sol+=crt;
}
fprintf(fout,"%lld\n",sol);
fclose(fin);
fclose(fout);
return 0;
}