Pagini recente » Cod sursa (job #1530520) | Cod sursa (job #238229) | Cod sursa (job #366092) | Cod sursa (job #1687363) | Cod sursa (job #70641)
Cod sursa(job #70641)
#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,s1,s2,ns;
fscanf(fin,"%d%d",&M,&N);
for(i=1; i*i<=160000; i++)
rad[i*i]=i;
long long sol=0,crt;
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)
{
ns=0;
//sol1
C=W-rad[delta];
if(C % 2 ==0 && C/2 > 0 && C/2 <= W )
{
crt++;
ns++;
s1=C/2;
}
//sol2
C=W+rad[delta];
if(C%2==0 && C/2>0 && C/2<=W)
{
crt++;
ns++;
s2=C/2;
}
if(ns==2 && s1==s2)
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;
}